我的几个rsa工具,加密出来的结果不一样,谁能给我个结果? ( 积分: 100 )

  • 主题发起人 主题发起人 erduo
  • 开始时间 开始时间
E

erduo

Unregistered / Unconfirmed
GUEST, unregistred user!
由rsa tools生成公钥私钥
公钥:
AF A9 EE 9F 10 01 CD 77 06 98 02 36 53 D9 04 00 F9 61 69 D0 88 4C F7 2F 65 68 FD 29 4C 0D 07 70 CC 8E F0 53 98 1A 5E EC 1D 64 A1 14 75 5C 87 36 55 F1 01 B8 82 DC 3C 45 AF 8F AB 3F AF 6A 01 7F C2 99 E0 BD 23 13 7B 74 F8 82 C9 79 66 4A C2 92 F8 73 AE E1 E5 DA 12 A7 0C C7 DD 32 E2 86 94 79 6B 69 CC 4B E0 60 96 CF 69 4E D6 77 F6 75 0A 8C C8 B1 27 F7 81 5A 7E C0 FF DD 44 50 67 E6 06 57
私钥:
50 FA C1 AA 4A 32 CA 89 48 5C E3 08 30 77 26 C5 5C 31 70 1A 55 FB 45 28 70 53 8A 01 73 B1 BD F0 5E 1C B6 E5 92 84 F5 A5 5B 97 7C 3A 76 30 05 95 22 E1 4B AD C7 85 C7 B3 48 4F AE DE 58 FB 41 5C E4 B4 0C 8F 01 A9 23 19 54 BC 2F 82 C9 7F A7 A7 89 A5 4E B5 8E 24 B7 42 A3 73 AE 0B EB A1 A6 16 53 05 36 DA 40 CB 29 E8 67 0E E7 E8 CC 8E 66 12 05 1F 6C 6B 21 31 B0 F9 D4 28 DF 54 DF 84 2A 21
e=65537
明文=IWANTFLY
49 57 41 4E 54 46 4C 59

求:密文
 
你是在求RSA算法吧?网上搜一下,很多的。2ccc.com上好像有个Stream的扩展控件也支持RSA算法的。
 
就是因为已经找到几个算法和工具,而它们算出的结果都不同,才使我迷惑
这是用rsa tools算出的
79 54 E1 00 34 8A B3 74 5E A7 01 04 50 60 57 0E 14 AB 46 61 64 D6 64 90 A4 C0 9F 55 B0 D7 54 99 74 8D F5 D0 25 AD AD BF 74 E2 86 EA F3 7C 4A 41 33 61 C5 07 0C 03 D2 84 43 38 8B 1F 04 33 31 A9 F8 EC 90 0D A8 27 86 9D 14 E9 3D 40 C2 B3 82 2B 7F 76 20 F2 BC E2 37 2F 92 AF AA 57 52 D7 23 AE 98 0E 55 40 F6 E1 E8 FB 5B B0 30 77 7E D9 F8 D0 25 4C 7D 8F C9 25 03 31 31 87 E0 FB 75 7C CA 52
这是用网上流传的FGInt算的
先将公钥用ConvertHexStringToBase256String将hex转了,
再Base256StringToFGInt得到n,最后RSAEncrypt(test, e, n, test)得到的是256str
再用ConvertBase256StringToHexString转出下面的HEX
4220A62A1B87F76BC109DE30A59ADF336041150799C5DC186610BBF0C4D314AF48565361F8ABAEE221586741EF4CE9FF07DE10589091A2BD26E830C58D7A92FA0AC938DB9BD52764960CD7FC61A7E4217CECDD0F679B27A7FF02960A24E233DC9889C6B8266C585E0AB779AB0F3021B209C88F686AC9DA2837F1886021A45849
还有一个控件直接出来的是好像是base64编码的,转出来也不一样
 
真白痴啊,肯定是编码格式不一样啊!
 
两个编码base64的,也不一样,
你要明白,就给个答案,
不明白别信口开河
 
不是指base64的格式,是工具实现的内部bigint的格式
你该用他们的工具把他们以国际标准ASN.1的形式输出就能比较了(或者都有PGP的格式也行)。如果没有那就没法子了。那你只有去看源程序看它内部怎么存放的。
 
根据PKCS#1规范被签名加密数据EM的长度必须等于1024位(128字节).EM由BT填充数据PS和数据D组成
EM=00+BT+PS+00+D
BT=01表示数据签名
PS=”FFFFFF”表示填充数据由“FF” 数据块组成
D对于数据签名它是BER编码
D=30+len(m+0d)+300906052b0e03021a050004+len(m)+m
m的最大长度为108个字节

这是什么意思?
 
如果自己明白rsa原理,找几个最简单的数字试试不就知道了?
 
PKCS#1定义的是RSA公开密钥算法加密和签名机制,我记得的是RSA要求操作的数据必须要是不大于k的数,这个应该想得到,所以对于大的数据要根据PKCS#1的规范,对数据进行分块,不过由于非对称加密算法巨慢,一般都只用于加密对称算法的密钥或对散列后的hash值签名,而很少用于直接的数据加密处理。

至于加密数据长度必须要是128字节从没有听说过。可能是你理解错误吧,PKCS#1的V2.1文档在这里(英文):
http://www.ietf.org/rfc/rfc3447.txt
 
我写的PKCS#1那些,是从向我传送加密数据的公司提供的文档上的“RSA签名加密算法”小节中贴过来的。
以前没接触过,现在基本上是晕菜了
 
后退
顶部