美文网首页
Node-RSA 前端生成公私钥对、私钥签名、公钥验签

Node-RSA 前端生成公私钥对、私钥签名、公钥验签

作者: 一个假前端 | 来源:发表于2019-02-22 18:13 被阅读0次

RSA前端生成公私钥对、私钥签名、公钥验签,前端打杂多年,第一次需要搞到这个鬼东西,一开始我内心有一百个拒绝拒绝拒绝 no no no .....

但是没办法,你搞也得搞不搞也得搞,谁叫公司有这么个需求呢? 历经千辛万苦,终于搞出来了,这得多谢下我们公司的后台娃【因为后台验签一直不过,最后查出来前端的锅,没有按照后台需要传入,其实这块我懵逼懵逼懵逼啊】,鼎力配合3,鼎力支持3,鼎力不能再鼎力啦啦啦【重要的事情说三遍!!!】

废话多了点,立马撸起袖子大干一场
不管三七二十一,贴上大名鼎鼎的链接如下:
https://www.npmjs.com/package/node-rsa

首先下载包 【前端用vue 就是这么任性】
npm i node-rsa -D
太慢啦!太慢啦!太慢啦! 那就用淘宝镜像 http://npm.taobao.org/ 自己看哈
cnpm i node-rsa -D

生成公私钥对

const key = new NodeRSA({ b: 2048 }); //生成2048位的密钥
let publicDer = key.exportKey("pkcs1-public-pem");  //公钥
let privateDer = key.exportKey("pkcs1-private-pem");//私钥
//由于我们公司需要提交的公钥不需要有头部尾部换行,简单来说就是只要一个字符串           
publicDer = publicDer.replace(/\n/g,'');
publicDer = publicDer.replace('-----BEGIN RSA PUBLIC KEY-----','');
publicDer = publicDer.replace('-----END RSA PUBLIC KEY-----','');

私钥签名

//接接上面的代码哈
先导入私钥
 key.importKey(privateDer ,"pkcs1-private-pem");
// hash是一个待签署的哈希值,是个base64的
let signedHash = key.sign(hash,"base64","base64"); //私钥签名后的结果是个base64格式的哦

公钥验签

//继续接接接上上面的代码哈
key.importKey(publicDer,"pkcs1-public-pem");
let vr = key.verify(hash, signedHash, 'base64', "base64");
console.log("验签结果:"+vr);  //true

踩坑多时,写个笔记5分钟搞定,分享给下一个需要搞这块的娃娃们参考下

哎呦喂,都下班了,今天周五周五周五,我还在公司加班写文档,立马下班嗨起来

相关文章

网友评论

      本文标题:Node-RSA 前端生成公私钥对、私钥签名、公钥验签

      本文链接:https://www.haomeiwen.com/subject/wctyyqtx.html