Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.036 c
10-1105790489
aus
2005-01-15 15:01
2005.10.16
Symantec Antivirus Server


2-1125085319
kimona
2005-08-26 23:41
2005.10.16
как открыть web станичку


6-1118477015
Shizuku
2005-06-11 12:03
2005.10.16
AutoUpdate


1-1127800740
ShotGun
2005-09-27 09:59
2005.10.16
Как деархивировать zip file?


2-1126054472
DimonS
2005-09-07 04:54
2005.10.16
Вопрос по SQL + DBGrid