首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3Crypto RSA签名

AS3Crypto RSA签名
EN

Stack Overflow用户
提问于 2009-09-28 20:45:47
回答 2查看 2.8K关注 0票数 0

我在将RSA在actionscript as3crypto库中对Base64 SHA1散列签名的返回值与c#中返回的结果进行匹配时遇到了一些问题。

我将一个符号散列作为字节数组传递给as3crypto和Base64中提供的base64 ()函数,并对结果进行编码。但是,此结果永远不会与执行相同任务的c#函数返回的结果相匹配。即使在字节数组级别工作,函数接受并返回十六进制有关系吗?

请看我下面的签名功能,看看我没有遗漏任何东西!

代码语言:javascript
复制
private function signHash(hashInBase64:String):String
{
       var src:ByteArray = Base64.decodeToByteArray(hashInBase64);
       var key:RSAKey = getRSAKey();
       var dst:ByteArray = new ByteArray();

       key.sign(src, dst, src.length);

       return Base64.encodeByteArray(dst);
}

有谁对AS3Crypto库有很多经验吗?

任何帮助都是最好的!

谢谢,

琼恩

EN

回答 2

Stack Overflow用户

发布于 2009-09-29 17:20:10

我假设您的C#版本使用的是RSA PKCS #1 version 1.5。该标准通过对组成如下的字节字符串执行RSA私钥操作来计算签名

代码语言:javascript
复制
0x00 0x01 || 0xff* || 0x00 || OID || hash

查看as3crypto代码可以看到,RSAKey类在签名操作期间没有添加任何OID。因此,如果你不这样做,你会得到不正确的结果。

查看代码还会发现as3crypto容易受到this attack的攻击,因为它没有正确地验证填充。这种攻击已经超过3年了。因此,使用与as3crypto不同的库似乎是一个很好的选择。

票数 1
EN

Stack Overflow用户

发布于 2012-02-06 08:23:47

现在有了一个与.NET兼容的ActionScript加密库,它就是:http://code.google.com/p/flame。看起来它完全像.NET一样支持RSA。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1489269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档