Форум: "Основная";
Текущий архив: 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.046 c