SMART LLC

MD5チェックサムを生成する方法(.NET)

公開日:2015/08/09

MD5チェックサム付きでPUTでファイルをアップロードするプログラムをつくる機会があった。
VB.NETでMD5チェックサムを生成する方法をメモする。

MD5チェックサム生成関数

関数をつくってみた。

Private Function Md5CheckSum(ByVal filePath As String) As Byte()
	Using checkSum As MD5 = MD5.Create(), _
	stream As FileStream = File.OpenRead(filePath)
		Return checkSum.ComputeHash(stream)
	End Using
End Function

パラメータはファイル名。
CreateメソッドでMD5オブジェクトを生成。
対象のファイルをFileStreamに読み込む。
ComputeHashでFileStreamからハッシュ値を算出してバイト配列を返す。

MD5チェックサムを使ったファイルアップロード関数(PUT)

関数をつくってみた。

Private Function UploadFile(ByVal filePath As String,
	ByVal checkSum As Byte(),
	ByVal url As String) As String

	Using data As New ByteArrayContent(File.ReadAllBytes(filePath)), _
	hc As New HttpClient
		data.Headers.ContentMD5 = checkSum
		Using postTask As Task(Of HttpResponseMessage) = hc.PutAsync(url, data)
			postTask.Wait()
			Using res As HttpResponseMessage = postTask.Result, _
			readTask As Task(Of String) = res.Content.ReadAsStringAsync
				readTask.Wait()
				Return readTask.Result
			End Using
		End Using
	End Using
End Function

パラメータは3つ。
ファイル名と生成したチェックサムとURL。
ファイルからByteArrayContentを生成。
ByteArrayContent.Headers.ContentMD5にチェックサムを設定。
HttpClient.PutAsyncでPUT送信。

PUTでファイルのアップロードてできたのね。

SHARE