藍(lán)山帝景
2018-08-09 11:07:06
網(wǎng)上的都是js公鑰加密例子,解密的例子就不好找。自己寫嘗試過很多次還是不行,希望幫助
7 回答

qq_日出與幻想_0
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
菜鳥,幾經(jīng)探索解覺了這個(gè)問題
首先根據(jù) jsencrypt 的官方文檔,是不支持使用 公鑰對(duì)數(shù)據(jù)解密的,最好的方法依然是換個(gè)支持的庫
百度搜來搜去發(fā)現(xiàn),其實(shí)nodejs 里面的 node-rsa 模塊是支持這個(gè)需求的。 所以就試試了 ,居然跑通了?
npm install node-rsa?
main.js 中 引入相關(guān)組件?
let?NodeRSA?=?require('node-rsa'); Vue.prototype.$nodersa?=?NodeRSA;
在需要解密的地方這樣調(diào)用
let??data?=?this.GetUrlParam("data");?//?加密后的數(shù)據(jù),base64?編碼 let?key?=??new?this.$nodersa(this.$global.rsa_pubkey);??//?設(shè)置你的公鑰 console.log(key.decryptPublic(data,"utf-8"));?//?解密數(shù)據(jù)

慕前端4074691
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
jsencrypt沒有公鑰解密,只能前端公鑰加密后臺(tái)私鑰解密。如果想要實(shí)現(xiàn)雙向加密,就要使用兩套密鑰。前臺(tái)向后端發(fā)送數(shù)據(jù)時(shí),使用第一套公鑰加密,后臺(tái)用第一套私鑰解密。后臺(tái)向前臺(tái)發(fā)送數(shù)據(jù)時(shí),后臺(tái)使用第二套公鑰加密,前臺(tái)使用第二套私鑰解密。

幕布斯6125053
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
1、 RSADecrypt //var a = this.doPrivate(d); var a = this.doPublic(d);?
2、pkcs1unpad2 //return null?
就實(shí)現(xiàn)了js就可以使用公鑰解密,java端私鑰加密的文本
添加回答
舉報(bào)
0/150
提交
取消