前端 JSEncrypt 和后台 node-rsa 非对称加密解密使用问题

2022-01-07 00:52:24 +08:00
 sheyue

就是我最近有个作业,我是想用 node-rsa 模块生成的密钥对,然后前端用 react+JSEncrypt 来验证,但是 JSEncrypd 导入的密钥和导出的密钥都不一致

可以看下代码截图:

这是用 nodejs 生成的 1024 长度的密钥文件:

这是前端代码使用代码:

这是上面前端代码输出结果:

疑惑

我不能理解的是 JSEncrypt 设置了从文件读取来的私钥公钥对后,能正常加密解密 我那个字符串 "sheyue"

但是从文件读到的私钥和 JSEncrypt 对象导出的私钥都不相等(也就不能解密真正想要解密的数据)

是那个密钥的格式问题吗(比如 pkcs8-public-pem 这个需要改)还是编码问题之类的(浏览器从文件读密钥是以 utf-8 编码读出来的字符串),密钥长度弄的是 1024

求大佬解惑

1881 次点击
所在节点    JavaScript
11 条回复
illuz
2022-01-07 01:05:29 +08:00
illuz
2022-01-07 01:06:40 +08:00
sheyue
2022-01-07 08:40:05 +08:00
@illuz 所以是需要改为 pkcs1 规范吗,老哥
liuidetmks
2022-01-07 08:49:05 +08:00
作业不是应该自己实现一遍 rsa 和对应的一些大数,模逆元,快速乘法这些吗?
趁时间多,造些小轮子玩玩还是挺好的
SoloCompany
2022-01-07 08:56:28 +08:00
仅仅是 rsa 为什么要用 x509 封装呢
https://www.npmjs.com/package/js-jsbn
tutou
2022-01-07 09:35:32 +08:00
@SoloCompany 大佬,你这个支持私钥加密吗
mozhizhu
2022-01-07 09:54:40 +08:00
前端也可以用 node-rsa 加解密
sheyue
2022-01-07 11:10:37 +08:00
@mozhizhu 前端用这个就报错了,不知道为什么,😂
mozhizhu
2022-01-07 14:49:39 +08:00
@sheyue node-rsa 有说自己是纯 JS 实现,可以在浏览器环境下运行;我的一个小项目,正常 import 模块,进行内容加密;你需要自行检查报错原因啊。
sheyue
2022-01-07 15:24:14 +08:00
@mozhizhu 它文档不是说 node.js RSA 吗,不能在浏览器中执行吧,我刚刚用 webpack 和不用 webpack 都不能使用。老哥,方便把你那个项目使用 node-rsa 部分的代码发我一下吗。
mozhizhu
2022-01-10 10:07:03 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/826703

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX