[英]RSA Encrypt and Decrypt between JS and Python(pycrypto)
我从JS RSA Library( http://www-cs-students.stanford.edu/~tjw/jsbn/ )加密纯文本,并从python,Crypto.PublicKey解密。
但是,当我用JS解密来自JS的密文时,它有虚拟文本。 我不知道他们为什么。
所以,我想要没有虚拟的明文。(例如测试)
在Python中创建密钥对。
key = RSA.generate(1024) #(publicKey, privateKey)
保存模数,JS中的指数和加密“测试”
var rsa = new RSAKey(); rsa.setPublic(modulus, exponent); //modulus and exponent hex string rsa.encrypt("test");
结果(十六进制字符串):d0ab7e22f92adcca7182e3c622b513382d163033df5ca0f3c0327e8a1774258800ae57dfc98522f5ed40a4bed2f4b54f46ea800ff1ef522b104b0f874a598f6bbcf5453506f8bf2f8aa3b04b0c73f0018564707304b3a059326d51945d3ff0282d63c2c4c1ea6ba5a2172af83ef8bdc1d104a8d67ba95ee97ab89b36cd5c34d4
在Python中使用PrivateKey解密
key.decrypt(above_result.decode('hex'))
结果:\\ x02 \\ xf0 \\ xae \\ xafK \\ xd3 \\ x17 \\ xfc \\ xf4 \\ xd6 \\ xd9 = \\ xee7 \\ x04 \\ x94 \\ xea \\ x9c \\ xd8 \\ xf7 - \\ x19 \\ x05 $!'#\\ xad \\ X82' \\ xfcKG \\ xadK \\ xb6_ \\ xabMZ:\\ x9dU \\ XA4 \\ XC0 [\\ x8c \\ xa6hC \\ X93 \\ XF7 \\ XBC \\ XF1:\\ x9f \\ x107D \\ xe8 \\ XFE \\ x07R \\ x8c \\ XD7 \\ XB3 \\ XE6 \\ XC6 \\ XCF ^ \\ X92 \\ XA2 \\ xe2X \\ XE4 \\ XAF | \\ x8aS \\ XFE \\ XD3 \\ X84)\\ XC3 \\ X82 \\ XDC \\ XD1 \\ 0x7F部分\\ xc9 \\ X12 \\ XD0 \\ X94 \\ xd2jS \\ XEE \\ X83 \\ xfda \\ xc6 \\ xc7d \\ xdd \\ x0b2 \\ xe6 \\ x1d \\ x84 \\ x0c \\ x93 \\ x8aK \\ xc2 \\ x10U \\ xc0Y~ \\ xbf \\ x15 \\ xfa \\ x00 测试
pycrypto rsa decrypt()方法是一种低级方法,因此您将获得预期的输出,PKCS#1,版本1.5,块类型2字节数组。 由于您似乎发现不方便,您应该遵循API文档中的建议 ,而是使用PKCS1_v1_5模块 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.