У меня есть метод VB.Net, который делает это:Vb.Net 256 Hash на PHP 256 Hash
' Step 1: UTF8 Encodes
Dim uEncode As New UnicodeEncoding()
' Step 2: Creates Byte Array from UTF8 encoded string
Dim bytClearString() As Byte = uEncode.GetBytes(ClearString)
' Step 3: Creates the hash from the byte array
Dim sha As New System.Security.Cryptography.SHA256Managed()
Dim hash() As Byte = sha.ComputeHash(bytClearString)
' Base64 Encodes the hash
Return Convert.ToBase64String(hash)
В PHP я делаю это:
// Step 1 utf8 encode
$tohash = utf8_encode('testinfostring');
// Step 2 cast string to byte array
Not sure about this step...
// Step 3
$hash = hash('sha256', $tohash, true);
// Step 4 convert hashed array to base64 encoded string
echo base64_encode($hash);
Выход из моего VB. Метод Net отличается от PHP, и я думаю, что шифрование VB происходит в байтовом массиве, а PHP - в самой строке.
Любая помощь очень ценится!
Пожалуйста, укажите код, а не псевдо-код, чтобы люди могли видеть, что происходит в действительности. – Theo
Для начала, в VB.NET вы должны вместо этого использовать 'System.Text.Encoding.UTF8.GetBytes (ClearString)'. –
Какой из них вы предпочитаете - хеширование массива исходного байта или текстового значения? – Andy