Мне нужно сгенерировать ha sh файла в VB. NET на сервере и отправить его клиенту AS3 для проверки по файлу на клиенте. Я выбрал MD5. Я использую встроенный VB. NET MD5 ha sh и Hurlant MD5 ha sh на AS3. Результаты разные.
Я ищу умеренно надежный метод проверки файлов, такие же. Скорость так же важна, как и точность. Я открыт для других алгоритмов хеширования, которые по крайней мере так же надежны и безопасны, как MD5.
Если есть решение, использующее то, что у меня есть, это было бы здорово. Если есть другой способ, который работает, это тоже нормально.
Мой код VB выглядит так:
Dim baFileData() As Byte = File.ReadAllBytes(HttpContext.Current.Server.MapPath(strFilePath))
Dim strFileHash As String = GetHash(baFileData)
Function GetHash(theInputBytes() As Byte) As String
Using hasher As MD5 = MD5.Create() ' create hash object
' Convert to byte array and get hash
Dim dbytes As Byte() =
hasher.ComputeHash(theInputBytes)
' sb to create string from bytes
Dim sBuilder As New StringBuilder()
' convert byte data to hex string
For n As Integer = 0 To dbytes.Length - 1
sBuilder.Append(dbytes(n).ToString("X2"))
Next n
Return sBuilder.ToString()
End Using
End Function
Мой код AS3 выглядит так:
private function getFileMD5Hash(flLocalFile:File):String
{
var strmInFile:FileStream = new FileStream();
strmInFile.open(flLocalFile, FileMode.READ);
var strFileData:String = strmInFile.readUTFBytes(strmInFile.bytesAvailable);
strmInFile.close();
var hash:IHash = Crypto.getHash("md5");
var baFileData:ByteArray = Hex.toArray(Hex.fromString(strFileData));
var baHash:ByteArray = hash.hash(baFileData);
var strFileHash:String = Hex.fromArray(baHash);
return strFileHash;
}