Значения, полученные из VB.NET и PHP

У меня есть некоторые проблемы с хеш-значением SHA1 строки. Я пытаюсь отправить файл с клиента, написанного в VB.NET на сервер, написанный в PHP. Моя проблема в том, что когда я прохожу ту же строку в VB.Net и PHP, значение SHA1, рассчитанное VB.Net, полностью отличается от значения, рассчитанного PHP.

Например, я хочу кодировать строку в базе64, а затем рассчитать хеш SHA1 панели Base64. Когда компьютер выполняет эту задачу из версии vb.net и от PHP версии я получаю два различных значения SHA1, даже если по-видимому, в кодировке Base64 строку одно и то же:

VB.net: 2E97A53B09C482A831540B532845BCAC79BFACCF PHP: 350A2080264E2724D4BCBC521C35264D264A1DAF

Я, конечно, что-то отсутствует, не могли бы вы мне точку в правильном направлении, и скажите мне, что я делаю неправильно здесь

спасибо

Вот? Vb.net код:

Dim cInput As String
Dim cBase64 As String
Dim objSHA1 As New SHA1CryptoServiceProvider()
Dim abBytesToHash() As Byte
Dim cHash As String


cInput = "the quick brown fox jumps over the lazy dog"
cBase64 = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(cInput))

abBytesToHash = System.Text.Encoding.ASCII.GetBytes(cBase64)

abBytesToHash = objSHA1.ComputeHash(abBytesToHash)
cHash = BitConverter.ToString(objSHA1.ComputeHash(abBytesToHash))
cHash = Replace(cHash, "-", "")

MsgBox("BASE64: " + cBase64 + vbNewLine + "SHA1: " + cHash)

' Result is:
' BASE64: dGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZw==
' SHA1: 2E97A53B09C482A831540B532845BCAC79BFACCF

И вот код PHP:

$cInput = "the quick brown fox jumps over the lazy dog";
$cBase64 = base64_encode($cInput);

echo("BASE64: " . $cBase64 . "<br />" . "SHA1: " . strtoupper(sha1($cBase64)));

// Result is:
// BASE64: dGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZw==
// SHA1: 350A2080264E2724D4BCBC521C35264D264A1DAF
5
задан Cesco 7 September 2011 в 14:57
поделиться