Ruby和JavaScript之间的RSA密钥对加密/解密?

时间:2014-03-10 15:53:50

标签: javascript ruby-on-rails ruby encryption cryptography

我一直致力于使用OpenSSL对Ruby中的数据进行加密,并使用JavaScript Forge库在JavaScript中解密数据。

(不安全,但这只是用于研究)分发密钥的方法工作正常,即我可以在Ruby中生成密钥并将它们放入PEM格式,将PEM传递给JavaScript并在JavaScript中恢复工作密钥但是,使用相同的密钥加密相同的字符串会产生两种不同的结果,因此两者之间的编码/解码显然不起作用。

这样做有好办法吗?

另一个问题是,将二进制数据字符串从Ruby传递给JavaScript而不会出现不兼容的类型错误需要进行某种转换,例如,将加密数据转换为十六进制,但在伪造库中使用此类信息证明是困难的。

1 个答案:

答案 0 :(得分:2)

我在原来的问题中实际上解决了我自己的问题

我只是做得不对

为了将来参考,如果您使用ruby openssl RSA加密并希望将其传递给javascript,我建议将https://github.com/digitalbazaar/forge库用于JS端,

第二,使用.unpack('H*')

将加密的字符串转换为十六进制

Forge PKI库有一个.hexToBytes()函数,然后您可以使用forge .decrypt方法并取回您的开始