こんにちは。
VB6.0で開発しています。
下記の内容を、VB6.0で実現したいのですがどのように
すれば、よいかわかりません。。すみませんが、教えていただけないでしょうか?
Dim bytMessage() As Byte
Dim bytMD5() As Byte
Dim strMD5 As String
Dim MD5 As New System.Security.Cryptography.MD5CryptoServiceProvider
'入力文字列をバイト文字列に変換する。
bytMessage = System.Text.Encoding.Unicode.GetBytes(wStr)
'MD5ハッシュ値を計算する。
bytMD5 = MD5.ComputeHash(bytMessage)
'計算したハッシュ値を文字列型に変換する。
strMD5 = System.BitConverter.ToString(bytMD5)
よろしくお願いします。
1. CAPICOM を使う。
http://www.microsoft.com/downloads/details.aspx?FamilyID=860EE43A-A843-462F-ABB5-FF88EA5896F6&displaylang=ja
Const CAPICOM_MD5 = 3
With CreateObject("CAPICOM.HashedData")
.Algorithm = CAPICOM_MD5
.Hash 元データ
変換結果 = .Value
End With
2. CryptAPI を使う。
3. BASP21 の MD5 メソッドを使う。
http://www.hi-ho.ne.jp/babaq/basp21.html
私がヘタレなのかもしれませんが、VB6で下記の様な
書き方できるんでしょうか? .NET系の様な気が・・・
> bytMessage = System.Text.Encoding.Unicode.GetBytes(wStr)
全然質問に答えてない内容で申し訳ありません。
> .NET系の様な気が・・・
そうですよ。
今回の質問は、この VB.NET のコードと同様の機能(MD5ハッシュ値取得)を
VB6 にて実装したいけれど、どのようにすればよいのか…という質問ですよね。
>.NET系の様な気が・・・
おそらく、質問者殿の意図としては、
こんなことをVB6.0でもやりたいだけど、どう書けばいいの?
と思われます。
それを見越して魔界の仮面弁士殿はレスされているのでしょう。
蛇足ながら、追加で、
http://kamoland.com/comp/kCrypt.html
http://www.di-mgt.com.au/src/basMD5.bas.txt
なるほど、よく見ればそ〜書いてありますね。
疑問に思ったのは私だけですね、きっと・・・。
あっくんさん
質問に関係ない事を書いてしまい申し訳ないです。
魔界の仮面弁士さん、もげさん
いろいろとご教授ありがとうございます。
大変参考になりました。
また、ひでらんさん質問の仕方が悪くてすみません。
もう一つ教えていただきたいのですが、
直接、バイナリの値を入力して、変換結果を知りたいのですが。。。
例えば、入力値が
E1 F0 C0 54 4A B4 B2 0B A0 70 4F E7 C1 D2 9E AF 3A 30 30 30 30
の16進数をバイト型に変換しこれを引数に渡し、
29 4F B8 37 EF 92 80 69 19 C6 95 E0 1B 28 52 B2
引数を渡すまでは、VB6.0です。
という結果を得たいのですが、なかなかうまくいきません。。。
中身的には、
Set objmd5 = CreateObject("AspMD5.AspMD5")
wStr = Text0.Text & "3A30303030" ' & ":0000"
For i = 0 To 20
If i = 0 Then
strmoji = Mid(wStr, 1, 2)
Else
strmoji = Mid(wStr, i * 2 + 1, 2)
End If
strmoji = "&H" & strmoji
wB1 = CByte(strmoji)
If i <> 21 Then
strmoji1(i) = strmoji
wB(i) = wB1
End If
Next i
wRStr = StrConv(objmd5.MD5String(wB), vbUpperCase)
Text1.Text = wRStr
として、処理をしています。
すみませんが、どなたかご教授ください。
よろしくお願いします。
ツイート | ![]() |