0

Microsoft Access でテキストの HMAC SHA1 署名を作成したい

.net オブジェクト System.Security.Cryptography.HMACSHA1 は com で参照できるので、それを使用できると考えました。

オブジェクトを作成してキーを設定することはできますが、compute 関数を呼び出してハッシュを取得しようとすると、実行時エラー 5「Invalid Procedure Call or Argument」というエラーが発生します。

Public Function sign(Key As String, Message As String)
    Dim asc, enc
    Dim MessageBytes() As bytes, HashBytes() As bytes
    Set asc = CreateObject("System.Text.UTF8Encoding")
    Set enc = CreateObject("System.Security.Cryptography.HMACSHA1")
    enc.Key = asc.GetBytes_4(Key)
    MessageBytes = asc.GetBytes_4(Message)
    HashBytes = enc.ComputeHash(MessageBytes)
    sign = EncodeBase64(HashBytes)
    Set asc = Nothing
    Set enc = Nothing
End Function

Encoding ビットを Web からコピーしたところ、GetBytes が GetBytes_4 に変換されていることがわかりました。この名前はマングリングですか?ComputeHashに似た何かをする必要がありますか? もしそうなら(私は _n を試しましたが、n = 1から6までは役に立ちませんでした)。

そうでない場合、私は何を間違っていますか?

4

1 に答える 1

0

この質問で私の質問に対する答えを見つけました

VBA の Base64 HMAC SHA1 文字列

enc.ComputeHash_2 を試したと思ったのですが、うまくいくように見えたので試していなかったのかもしれません。

于 2012-08-20T11:26:58.343 に答える