![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Шифрование
Cardinal © (2005-02-20 20:47:00)Вопрос по шифрованию строки без возможности расшифровки. Я просмотрел много факов - везде защифрованную строку можно расшифровать. Мне надо получить такую строку, чтобы ее нельзя было расшифровать (хэш). Конкретной функции нигде найти не могу. Хэлп!
Eraser (2005-02-21 10:54:00) [1]SammIk ©
Это исходит из вопроса->чтоб расшифровать нельзя.
Ну я так понимаю автор вопроса хотел сказать "Чтобы расшифровать нельзя было ТЕМ ЖЕ КЛЮЧОМ, ЧТО ЗАШИФРОВАТЬ" так? Или не так?
SammIk (2005-02-21 07:06:00) [2]2 [6]
Именно хеши его интересуют, а не опенкей.
Это исходит из вопроса->чтоб расшифровать нельзя.
Инк (2005-02-21 02:50:00) [3]Вот пример DLL бибилиотеки (Indy)
library crypt;
uses
Windows,
StdCtrls,
SysUtils,
Classes,
IdHash,
IdHashMessageDigest;
{$R *.res}
function md5(str:shortstring):shortstring;stdcall;
Var
Digest: T4x4LongWordRecord;
S,S1: String;
i: Integer;
begin
SetLength(S, 16);
with TIdHashMessageDigest5.Create do begin
Digest := HashValue(str);
Move(Digest, S[1], 16);
for i := 1 to Length(S) do begin
S1 := S1 + Format('%02x', [Byte(S[i])]);
end;
while Pos(' ', S1) > 0 do S1[Pos(' ', S1)] := '0';
Result:=s1;
Free;
end;
end;
exports md5;
begin
end.
Eraser (2005-02-20 22:49:00) [4]Cardinal ©
Мне надо получить такую строку, чтобы ее нельзя было расшифровать (хэш)
Я так понимаю тебя интересует алгоритмы шифрования с открытым ключом? RSA, DSA?
Или что?
Alex_Petr (2005-02-20 22:00:00) [5]Kolan © (20.02.05 21:52) [3]
>На нахрен она тебе нужна если ты её потом не расшифруешь?
Может он будет сравнивать результаты шифровки.
Alex_Petr (2005-02-20 22:00:00) [6]Kolan © (20.02.05 21:52) [3]
>На нахрен она тебе нужна если ты её потом не расшифруешь?
Может он будет сравнивать результаты шифровки.
Kolan (2005-02-20 21:52:00) [7]
> Cardinal © (20.02.05 20:47)
На нахрен она тебе нужна если ты её потом не расшифруешь?
> Конкретной функции нигде найти не могу
Подставляй вместо каждой буквы Random'ом буквы вот и получишь.
А если надо хеш. То вот ещё один:
while (*(StringToHash + I) != '\0')
{
Hash = (31 * Hash + *(StringToHash + I));
I++;
}
return Hash;
}
Alex_Petr (2005-02-20 21:46:00) [8]CryptCreateHash
CryptHashData
CryptDestroyHash
kaZaNoVa (2005-02-20 21:36:00) [9]
MD5юзай