DCPcrypt SHA512 не совпадает с PHP openssl_digest

Работа с проектом, где мне нужно иметь SHA512 хэш строки в программе C ++ и в PHP.

Я использую RAD Studio XE2 C ++ Builder с библиотекой DCPCrypt (версия DCPcrypt v2 Beta 3 — РЕКОМЕНДУЕТСЯ).

Вот мой код на C ++, поэтому очень простая тестовая программа с Edit1 (ввод текста) и Edit2 (вывод хэша) и одной кнопкой:

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit2->Text = SHA512( Edit1->Text );

}
//---------------------------------------------------------------------------
String __fastcall TForm1::SHA512(String input){

if (input.Length() ) {
TDCP_sha512 *sha512 = new TDCP_sha512(this);
unsigned char array[192];

String output = "";

sha512->Init();
sha512->UpdateStr( Edit1->Text );
sha512->Final((void*)array);

for (int i = 0; i < 64; ++i) {
output += IntToHex(array[i], 2);
}

sha512->Free();

return output.LowerCase();
}
}

Когда я наберу «ТЕСТ» в поле Edit1 и нажму кнопку, у меня будет результат хеширования:
0881048f3717a7cc363ca50e2dd7229efceb30786f0dc33b1b2cbcc3929055d00ed594f96127156aab01f30b6f6d28b100cbd7975e168bc39e50251d96c6beef

Когда я пытаюсь сделать то же самое в коде PHP:

<?PHP
echo openssl_digest('TEST', 'sha512');
?>

Это даст мне совершенно другой результат:
7bfa95a688924c47c7d22381f20cc926f524beacb13f84e203d4bd8cb6ba2fce81c57a5f059bf3d509926487bde925b3bcee0635e4f7baeba054e5dba696b2bf

Я могу получить соответствие, если сравниваю строку «1» в обоих концах, но после добавления большего количества букв код C ++ не показывает одинаковые результаты.
При использовании некоторых «онлайн» форм sha512, которые я обнаружил в Интернете, я получаю те же результаты, что и в коде PHP.

Есть идеи?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]