Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Вниз

RSA - Шифрование   Найти похожие ветки 

 
Hkr ©   (2005-09-23 17:08) [0]

Нету у кого-нить модуля для реализации RSA-шифрования/дешифрования, а так же создания RSA-ключей, желательно ,чтоб это было организовано, как набор процедур, а не как класс..


 
Alexander Panov ©   (2005-09-23 17:52) [1]

DCU взять здесь - http://www.crypto-central.com/

А здесь я треировался, все роверь и можешь использовать.

unit Unit2;

interface

uses classes, SysUtils, RSA;

procedure CreateKeys(var Priv,Pub: String);
function LoadKey(Filename: String): String;
procedure SaveKey(const Key,Filename: String);

function EncryptStr(const SrcStr,Priv,Pub: String): String;
function DecryptStr(const SrcStr,Priv,Pub: String): String;

implementation

procedure CreateKeys(var Priv,Pub: String);
var
 SeedP: BigNum;         // holds the seed for the random search of Prime1
 SeedQ: BigNum;         // holds the seed for the random search of Prime2
 PrimeLength: Integer;  // holds the number of significant 32 bit words
 i: integer;            // loop counter
 RSA: TRSA;
begin
 RSA := TRSA.Create(nil);
 RSA.KeyBits := kb0512;
 RSA.SymKeyLength := sk64;
 Randomize;
 try
   PrimeLength := RSA.GetPrecision;

   for i := 0 to PrimeLength do
   begin
        SeedP.Contents[i] := Random($FFFFFFFF);
        SeedQ.Contents[i] := Random($FFFFFFFF);
    end;

    RSA.MakeKeyPair(SeedP, SeedQ);

    Priv := RSA.PrivateKey;
    Pub := RSA.PublicKey;

   finally
     RSA.Free;
   end;
end;

function EncryptStr(const SrcStr,Priv,Pub: String): String;
var
 RSA: TRSA;
begin
 RSA := TRSA.Create(nil);
 RSA.KeyBits := kb0512;
 RSA.SymKeyLength := sk64;

 RSA.PrivateKey := Priv;
 RSA.PublicKey := Pub;

 try
   RSA.EncryptString(SrcStr,Result);
 finally
   RSA.Free;
 end;
end;

function DecryptStr(const SrcStr,Priv,Pub: String): String;
var
 RSA: TRSA;
begin
 RSA := TRSA.Create(nil);
 RSA.KeyBits := kb0512;
 RSA.SymKeyLength := sk64;

 RSA.PrivateKey := Priv;
 RSA.PublicKey := Pub;

 try
   RSA.DecryptString(SrcStr,Result);
 finally
   RSA.Free;
 end;
end;

procedure SaveKey(const Key,Filename: String);
var
 fs: TFileStream;
begin
 fs := TFileStream.Create(FileName,fmCreate);
 try
   fs.Write(Key[1],Length(Key));
 finally
   fs.Free;
 end;
end;

function LoadKey(Filename: String): String;
var
 fs: TFileStream;
 Len: Integer;
begin
 SetLength(Result,1024);
 fs := TFileStream.Create(FileName,fmOpenRead);
 try
   Len := fs.Read(Result[1],1024);
   SetLength(Result,Len);
 finally
   fs.Free;
 end;
end;

end.


 
Eraser ©   (2005-09-23 20:18) [2]


> Hkr ©   (23.09.05 17:08)

Смотри компоненты LockBox на torry.net они.


 
Polevi ©   (2005-09-24 08:53) [3]

MS CryptoAPI


 
Hkr ©   (2005-09-24 15:30) [4]

>Alexander Panov ©   (23.09.05 17:52) [1]

Пасиба :)


> Eraser ©   (23.09.05 20:18) [2]
>
> > Hkr ©   (23.09.05 17:08)
>
> Смотри компоненты LockBox на torry.net они.


Да я их видел, но. .я не хочу компоненты и классы, я хочу, чтобы это был набор процедур... так и памяти меньше ест и потом, если что, на другой алгоритм шифрования легче перенести :)


 
Eraser ©   (2005-09-24 15:34) [5]


> Hkr ©   (24.09.05 15:30) [4]

Ну тогда [3].


 
Hkr ©   (2005-09-24 19:54) [6]


> Eraser ©   (24.09.05 15:34) [5]
>
> > Hkr ©   (24.09.05 15:30) [4]
>
> Ну тогда [3].

э... MS CryptoAPI... хм... а NT4.0 поддерживает его?


 
Eraser ©   (2005-09-24 19:57) [7]


> Hkr ©   (24.09.05 19:54) [6]

Их несколько версий есть. Скорее всего можно установить последнюю.
Смотри в MSDN.


 
Hkr ©   (2005-09-25 15:11) [8]


> Eraser ©   (24.09.05 19:57) [7]
>
> > Hkr ©   (24.09.05 19:54) [6]
>
> Их несколько версий есть. Скорее всего можно установить
> последнюю.

Установить.. :(, не... тогда не получится... нам на инфе никто не разрешит ничего устанавливать там...
а тогда еще 1.. вопрос.. а нету RSA на С++? просто тогда можно было бы сделать длл и из нее экспортировать функции :)


 
Eraser ©   (2005-09-25 15:24) [9]


> Hkr ©   (25.09.05 15:11) [8]

Скорее всего установка сводиться к копированию определёных библиотек.


 
DiamondShark ©   (2005-09-25 16:36) [10]

Не надо ничего устанавливать. Сам API и базовый провайдер есть на любой машине.
Так что RSA использовать можно.


 
Hkr ©   (2005-09-26 10:10) [11]


> DiamondShark ©   (25.09.05 16:36) [10]
> Не надо ничего устанавливать. Сам API и базовый провайдер
> есть на любой машине.
> Так что RSA использовать можно.

и на NT 4.0?


 
DiamondShark ©   (2005-09-26 11:54) [12]

И на NT 4.0


 
Hkr ©   (2005-09-27 16:27) [13]


> DiamondShark ©   (26.09.05 11:54) [12]
> И на NT 4.0

Это хорошо :))), тогда такой вопрос: как его использовать :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.042 c
1-1127427995
sashok
2005-09-23 02:26
2005.10.16
Val(ReadOut.Text, op1, Code);


1-1127395108
keal
2005-09-22 17:18
2005.10.16
Исходники ядра браузера


14-1127846871
syte_ser78
2005-09-27 22:47
2005.10.16
Посоветуйте программу.


14-1127372674
Игорь Шевченко
2005-09-22 11:04
2005.10.16
Чему учат в школе: граждановедение


8-1116960003
Eraser
2005-05-24 22:40
2005.10.16
Формирование wav файла из данных в фотмате PCM





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский