7 回答

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
菜鳥(niǎo),幾經(jīng)探索解覺(jué)了這個(gè)問(wèn)題
首先根據(jù) jsencrypt 的官方文檔,是不支持使用 公鑰對(duì)數(shù)據(jù)解密的,最好的方法依然是換個(gè)支持的庫(kù)
百度搜來(lái)搜去發(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ù)

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
jsencrypt沒(méi)有公鑰解密,只能前端公鑰加密后臺(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)使用第二套私鑰解密。

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
樓主你好,你的公鑰解密的問(wèn)題解決了嗎?現(xiàn)在我也和你遇到同樣的問(wèn)題,希望得到幫助,謝謝!

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)