0

私は本当に _verify 関数がこのクラスで何をするのか理解していません:

http://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/crypto/rsa/RSAKey.as

特に、「dst」変数に何を入れますか。私は実際に暗号化されたデータでこのメソッドを使用する「検証キー」を持っており、dst変数で公開キーを取得しています...

よりよく理解できるように、ここに小さな図を示します: http://i.imgur.com/R8DqT.png

ありがとう

Ps : .net でも同じことをしなければならないので、同等のものを知っている場合はお知らせください。

4

1 に答える 1

1

関数 _verify (以下の参照用に含まれています)

    public function verify(src:ByteArray, dst:ByteArray, 
length:uint, pad:Function = null):void {
        _decrypt(doPublic, src, dst, length, pad, 0x01);
    }

指定したリンクを見ると、関数は RSA 署名付きデータを検証するために使用されます。結果は dst ByteArray にコピーされます。

壊す:

  • doPublic= 関数パラメータ、ラッパー アラウンドBigInteger.modPowInt()
  • src= 符号付きデータのバイト配列
  • dst= with validation result の結果を保持するバイト配列
  • length= src バイト配列のデータの長さ
  • pad= 関数パラメータ、pkcs1pad( _encrypt) およびpkcs1unpad( _decrypt)のラッパー
  • 0x010xff= padType - 固定値 ( ) がパディング (0x01) で使用されるか、疑似乱数 (0x02) で使用されるかを指定する整数値- (実際に使用されるのpkcs1padは から呼び出される場合のみ_encrypt)

RSA 方式では、署名されたデータは、公開鍵を使用して署名を復号化することによって検証されます。

更新:カバーされていない非常に具体的なニーズがない限り、投稿した ActionScript-3 を移植する理由はありません。フレームワークに含まれている c# RSACryptoServiceProviderを使用します。Interoperation with the Microsoft Cryptographic API (CAPI)MSDN の説明のセクションに特に注意してください。

dstAS3Crypto 実装と同様の方法でバイト配列のコンテンツが必要であるというコメントに対処すると、署名されたデータを公開鍵に対して復号化するためのラッパーを作成することができます。公開鍵情報をインポートするために使用するRSACryptoServiceProvider.ImportParameters()関数を見てください。公開鍵の取得方法について詳細を提供していないため、これ以上具体的に説明することはできません. この実装は、キー ファイルを解析して、メソッドRSAParametersにフィードするのに適したファイルを作成するのに役立ちます。ImportParameters

于 2012-12-23T15:24:21.020 に答える