RSAKey(AS3Crypto)中的“验证”功能有什么作用?

时间:2012-12-23 14:31:14

标签: c# .net actionscript-3

我真的不明白_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中做同样的事情,所以如果你知道相同的东西,请告诉我

1 个答案:

答案 0 :(得分:1)

函数_verify(包含在下面参考)

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

查看您提供的link,该函数用于验证RSA签名数据 - 结果将复制到dst ByteArray。

故障:

  • doPublic =函数参数,BigInteger.modPowInt()
  • 的包装器
  • src =带有签名数据的字节数组
  • dst =将保存验证结果的字节数组
  • length = src字节数组中数据的长度
  • pad =函数参数,pkcs1pad_encrypt)和pkcs1unpad_decrypt
  • 的包装器
  • 0x01 = padType - 一个整数值,指定在填充(0x01)中使用固定值(0xff)还是伪随机值(0x02) - (仅在{{中实际使用) 1}}从pkcs1pad
  • 调用

在RSA方案中,通过使用公钥解密签名来验证签名数据。

更新:除非您有非特定需求,否则无法理解为什么要移植您发布的ActionScript-3。使用框架中包含的c#RSACryptoServiceProvider。请特别注意MSDN说明中的_encrypt部分。

以与AS3Crypto实现类似的方式处理有关需要Interoperation with the Microsoft Cryptographic API (CAPI)字节数组内容的注释,您可以创建一个包装器来根据公钥解密签名数据。查看用于导入公钥信息的RSACryptoServiceProvider.ImportParameters()函数。由于您没有提供有关如何检索公钥的详细信息,因此我无法提供更具体的信息。此实现example应该有助于解析密钥文件,以创建适当的dst以提供给RSAParameters方法。