Никак не могу найти сабж. Нужна бесплатная реализация UNIX'овского алгоритма Crypt, используемого для шифрования паролей. Может, кто-то видал такое чудо в природе? Буду благодарен за инфу!
P.S. На
www.torry.net и в
www.google.com искал, но не нашёл. Может у этого алгоритма ещё какое-то название есть?..
> From: Firstborn
> Никак не могу найти сабж. Нужна бесплатная реализация UNIX'овского
> алгоритма Crypt, используемого для шифрования паролей. Может, кто-то видал
> такое чудо в природе? Буду благодарен за инфу!
> P.S. На www.torry.net и в www.google.com искал, но не нашёл. Может у этого
> алгоритма ещё какое-то название есть?..
А есть необходимость в реализации именно этого алгоритма, или нужно просто
шифрование паролей? А то ведь ещё есть CryptoAPI и CAPICOM, как бы тоже неплохие
вещи
Posted via RSDN NNTP Server 1.9
> Вообще говоря подойдёт любая one-way функция, совсем необязательно точно
> такая же как у UNIX, просто надо было от чего-то оттолкнуться.
Если односторонний, то это хэш.
var
hProv: HCRYPTPROV;
hHash: HCRYPTHASH;
dwLen, dwTmp: DWORD;
HashArray: array[0..31] of char; // Длина массива, чтоб хэш влезал
begin
CryptAcquireContext(@hProv, '', '', <Идентификатор криптопровайдера, я работаю
с ГОСТОМ через КриптоПро, поэтому стоит 75, ты вебери свой>, CRYPT_VERIFYCONTEXT);
CryptCreateHash(hProv, <идентификатор хеширующего алгоритма>, 0, 0, @hHash);
CryptHashData(hHash, @(Data[1]), Length(Data), 0);
dwTmp := sizeof(dwLen);
CryptGetHashParam(hHash, HP_HASHSIZE, @dwLen, @dwTmp, 0);
CryptGetHashParam(hHash, HP_HASHVAL, @HashArray, @dwLen, 0);
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
end;
После отработки в HashArray — хэш, посчитанный из Data, его и используй для
сверки пароля. Прототипы функций есть в модуле WinCrypt.pas, там же
идентификаторы стандартных провайдеров и алгоритмов, могу выслать.
Posted via RSDN NNTP Server 1.9
Здравствуйте, Firstborn, Вы писали:
F>Никак не могу найти сабж. Нужна бесплатная реализация UNIX'овского алгоритма Crypt, используемого для шифрования паролей. Может, кто-то видал такое чудо в природе? Буду благодарен за инфу!
F>P.S. На www.torry.net и в www.google.com искал, но не нашёл. Может у этого алгоритма ещё какое-то название есть?..
Вообще-то там обычный DES алгоритм только хитрая схема: двойная. Можно поискать на DES, но лучше уже брать DESX, если я не ощибаюсь, а то обычный DES слишком прост.
Здравствуйте, Firstborn, Вы писали:
F>Вообще говоря подойдёт любая one-way функция, совсем необязательно точно такая же как у UNIX, просто надо было от чего-то оттолкнуться.
Посмотри HashLib!
здесь... << RSDN@Home 1.1.4 beta 4 rev 360 >> <<silent>>