Главная страница
    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.046 c
1-1127809979
Wolferio
2005-09-27 12:32
2005.10.16
FileListBox маска


4-1124275353
Tack
2005-08-17 14:42
2005.10.16
узнать, перекрыто ли окно частично другими окнами или свернуто


2-1126083422
Suriken
2005-09-07 12:57
2005.10.16
Титры


3-1126042829
Lexaz2005
2005-09-07 01:40
2005.10.16
ошибка priveleged instruction


2-1125825065
TG
2005-09-04 13:11
2005.10.16
Устоновка компонента





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский