1

現在、 Tableauの Web サービス認証の一部として RSA 暗号化キーを作成しようとしています。

私は暗号化に関して初心者であり、公開鍵の生成方法がよくわかりません。

モジュラスは 256 バイトで、指数は 5 バイトです。

Imports System.Security.Cryptography

Sub CreateKey() 

    Dim modulus As String= "bba199e30e41fc23078687dfea032c41bc354518115887f3f59c07ee51628c8d354243d2484a7b7278a2b47e92dd5df7c815ad96b5b59f4e202452b5045587d2eca12fb72aba39bb80048f4a9c83fb1e0187e3d73c323ee35f9437828e5abecb0b894dac45217722eb1d6bbab7ff6661b5f728ca1b0be01f138c6f5f1db5a177"

    Dim exponent As String = "10001"

    Dim key = New RSAParameters
    key.Exponent = Encoding.UTF8.GetBytes(exponent)
    key.Modulus = Encoding.UTF8.GetBytes(modulus)

    Dim rsa As RSACng = New RSACng()
    rsa.ImportParameters(key) 'exception thrown here

End Sub
4

1 に答える 1

1

モジュラスと指数は、16 進数でエンコードされた値です。実行Encoding.UTF8.GetBytes(...)しても、文字列を正しいモジュラス/指数に変換するために必要なデコードは行われません。

次のいずれかを行う必要があります。

  • 16 進文字列を適切なバイト配列にデコードするために必要なコードを記述し、代わりにこれを使用しますEncoding.UTF8.GetBytes(...)(このような関数の例は、StackOverflow や他の場所にたくさんあります)。
  • 文字列の代わりにバイト配列を使用してください。

交換:

Dim modulus As String = "bba199..."

と:

Dim modulus As Byte() = New Byte() { &HBB, &HA1, &H99, ...}
于 2015-07-29T10:18:52.057 に答える