[PR]

ハッシュ DLL

戻る
動作環境 / バージョン / 正規表現 / 日時書式 / 文字分類 / ハッシュ DLL

C・C++ / VB.NET / VB / VBA

関数

LIBRARY
EXPORTS
  CreateAlgorithm        @1 ; アルゴリズムへのハンドルを作成します。
  DestroyAlgorithm       @2 ; アルゴリズムを破棄します。
  InitAlgorithm          @3 ; アルゴリズムを初期化します。
  InputData              @4 ; アルゴリズムへデータを入力します。
  GetHashLength          @5 ; ハッシュのサイズをバイト数で取得します。
  GetHash                @6 ; 入力されたデータからハッシュを取得します。
  GetHashTextLength      @7 ; ハッシュ文字列の文字列長をバイト数で取得します。
  GetHashText            @8 ; 入力されたデータからハッシュ文字列を取得します。

宣言?

これらのコードは普段 VB.NET を使用していない作者が一度も実行・コンパイルすることなく想像に頼って書いたコードです。 そこまで大きく的から外れているとも思ってはいませんが、この書き方を推奨するものでも動作を保証するものでもありません。 むしろ「VB.NET で、そうは書かない」といった点を御指摘いただけますと大変うれしく思います。 (2007/09/14)

Declare Function CreateAlgorithm() As System.IntPtr
Declare Function DestroyAlgorithm( ByVal hAlgorithm As System.IntPtr ) As System.UInt32
Declare Function InitAlgorithm( ByVal hAlgorithm As System.IntPtr ) As System.UInt32
Declare Function InputData( ByVal hAlgorithm As System.IntPtr, ByVal data As Long, ByVal length As Long ) As System.UInt32
Declare Function GetHashLength( ByVal hAlgorithm As System.IntPtr ) As System.Int32
Declare Function GetHash( ByVal hAlgorithm As System.IntPtr, ByVal buffer As System.IntPtr, ByVal bufsize As System.Int32 ) As System.UInt32
Declare Function GetHashTextLength( ByVal hAlgorithm As System.IntPtr ) As System.Int32
Declare Function GetHashText( ByVal hAlgorithm As System.IntPtr, ByVal buffer As System.String, ByVal bufsize As System.Int32 ) As System.UInt32


サンプル?

これらのコードは普段 VB.NET を使用していない作者が一度も実行・コンパイルすることなく想像に頼って書いたコードです。 そこまで大きく的から外れているとも思ってはいませんが、この書き方を推奨するものでも動作を保証するものでもありません。 むしろ「VB.NET で、そうは書かない」といった点を御指摘いただけますと大変うれしく思います。 (2007/09/14)

'
Declare Function CreateAlgorithm Lib "md5.dll" () As System.IntPtr
Declare Function DestroyAlgorithm Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr) As System.UInt32
Declare Function InitAlgorithm Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr) As System.UInt32
Declare Function InputData Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr, ByVal data As System.String, ByVal length As System.Int32) As System.UInt32
Declare Function GetHashText Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr, ByVal buffer As System.String, ByVal bufsize As System.Int32) As System.UInt32
Declare Function GetHashTextLength Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr) As System.UInt32

Sub Main()
	Dim bufsize As System.UInt32     '
	Dim result As System.UInt32      '
	Dim hAlgorithm As System.IntPtr  ' アルゴリズムへのハンドル
	Dim text As System.String        ' ハッシュ値を文字列化したもの
	
	' アルゴリズムの取得
	hAlgorithm = CreateAlgorithm()
	If hAlgorithm = 0 Then
		MsgBox("error! CreateAlgorithm()")
	End If
	
	' アルゴリズムの初期化
	result = InitAlgorithm(hAlgorithm)
	If result <> 0 Then
		MsgBox("error! InitAlgorithm()")
	End If
	
	' ここでハッシュ化したいデータを入力する
	result = InputData(hAlgorithm, "sample text", Len("sample text"))
	If result <> 0 Then
		MsgBox("error! GetHashText()")
	End If
	
	' ハッシュ文字列の取得
	bufsize = 1 + GetHashTextLength(hAlgorithm)
	text = Space(bufsize)
	result = GetHashText(hAlgorithm, text, bufsize)
	If result <> 0 Then
		MsgBox("error! GetHashText()")
	End If
	
	' アルゴリズムの破棄
	result = DestroyAlgorithm(hAlgorithm)
	If result <> 0 Then
		MsgBox("error! DestroyAlgorithm()")
	End If
	
	' ハッシュ値の表示
	MsgBox(text)
	
End Sub

Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
>> Amazon.co.jp 『たまゆら童子』 へ
>> 楽天ブックス 『たまゆら童子』 へ