私はこれで苦労しています。アップロードされたファイルのハッシュコードをチェック/構築するための正しい方向に誰かが私を向けることができますか、それとも以下のコードで私が間違っていることを教えてもらえますか?
getFileSHA256(softwareUpload.PostedFile) 'Line that calls the function includes a reference to an uploaded file
Private Function getFileSHA256(ByVal theFile As Web.HttpPostedFile) As String
Dim SHA256CSP As New SHA256Managed()
Dim byteHash() As Byte = SHA256CSP.ComputeHash(theFile.InputStream)
Return ByteArrayToString(byteHash)
End Function
Private Function ByteArrayToString(ByVal arrInput() As Byte) As String
Dim sb As New System.Text.StringBuilder(arrInput.Length * 2)
For i As Integer = 0 To arrInput.Length - 1
sb.Append(arrInput(i).ToString("X2"))
Next
Return sb.ToString().ToLower
End Function
関数は機能しますが、戻り値が他のプログラムの sha256 値と一致しないことを付け加えておきます。
編集------
コードで使用している関数が他に 2 つあります。SHA1 は SHA256 と同じ種類の結果を取得します。結果は信頼できるソースと一致しません。
ただし、MD5 は期待どおりに動作します。
Private Function getFileSHA1(ByVal theFile As Web.HttpPostedFile) As String
Dim SHA1CSP As New SHA1CryptoServiceProvider()
Dim byteHash() As Byte = SHA1CSP.ComputeHash(theFile.InputStream)
Return ByteArrayToString(byteHash)
End Function
Private Function getFileMd5(ByVal theFile As Web.HttpPostedFile) As String
Dim Md5CSP As New System.Security.Cryptography.MD5CryptoServiceProvider
Dim byteHash() As Byte = Md5CSP.ComputeHash(theFile.InputStream)
Return ByteArrayToString(byteHash)
End Function
これらの機能が期待どおりに機能していることがわかったら、これらの機能を統合する予定です。
これらの唯一の違いは、MD5 が「MD5CryptoServiceProvider」を使用しており、期待どおりに機能することです。SHA1 も「SHA1CryptoServiceProvider」を使用していますが、信頼できるソースと一致しません。