亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問能否提供一個使用jsencrypt的js公鑰解密例子?

請問能否提供一個使用jsencrypt的js公鑰解密例子?

藍山帝景 2018-08-09 11:07:06
網上的都是js公鑰加密例子,解密的例子就不好找。自己寫嘗試過很多次還是不行,希望幫助
查看完整描述

7 回答

?
qq_日出與幻想_0

TA貢獻1條經驗 獲得超1個贊

菜鳥,幾經探索解覺了這個問題

首先根據 jsencrypt 的官方文檔,是不支持使用 公鑰對數據解密的,最好的方法依然是換個支持的庫

百度搜來搜去發現,其實nodejs 里面的 node-rsa 模塊是支持這個需求的。 所以就試試了 ,居然跑通了?

npm install node-rsa?

main.js 中 引入相關組件?

let?NodeRSA?=?require('node-rsa');
Vue.prototype.$nodersa?=?NodeRSA;

在需要解密的地方這樣調用

let??data?=?this.GetUrlParam("data");?//?加密后的數據,base64?編碼
let?key?=??new?this.$nodersa(this.$global.rsa_pubkey);??//?設置你的公鑰
console.log(key.decryptPublic(data,"utf-8"));?//?解密數據


查看完整回答
1 反對 回復 2020-10-14
  • 昂布瑞拉
    昂布瑞拉
    嘗試用答主回答發現有用。遇到一個坑:在new NodeRSA時需要指定秘鑰的格式,有pkcs1,pksc8兩種; 以下是我使用pkcs8公鑰解密的代碼。秘鑰一定要帶規定的前后綴。 const pkcs8PublicKeyData = '-----BEGIN PUBLIC KEY-----你的publickey-----END PUBLIC KEY-----' export function rsaDecryptByPublicKey(data) { const publicKey = new NodeRSA(pkcs8PublicKeyData, 'pkcs8-public') return publicKey.decryptPublic(data,"utf8") }
?
慕前端4074691

TA貢獻1條經驗 獲得超1個贊

jsencrypt沒有公鑰解密,只能前端公鑰加密后臺私鑰解密。如果想要實現雙向加密,就要使用兩套密鑰。前臺向后端發送數據時,使用第一套公鑰加密,后臺用第一套私鑰解密。后臺向前臺發送數據時,后臺使用第二套公鑰加密,前臺使用第二套私鑰解密。


查看完整回答
1 反對 回復 2019-01-27
  • 幕布斯6125053
    幕布斯6125053
    1、 RSADecrypt //var a = this.doPrivate(d); var a = this.doPublic(d); 2、pkcs1unpad2 //return null 就實現了js就可以使用公鑰解密,java端私鑰加密的文本
?
qq_沐曉清楓_0

TA貢獻1條經驗 獲得超0個贊

樓主你好,你的公鑰解密的問題解決了嗎?現在我也和你遇到同樣的問題,希望得到幫助,謝謝!

查看完整回答
反對 回復 2019-09-03
?
Long_baby

TA貢獻1條經驗 獲得超0個贊

你的這個問題解決了嗎

查看完整回答
反對 回復 2018-11-16
?
幕布斯6125053

TA貢獻1條經驗 獲得超0個贊

1、 RSADecrypt //var a = this.doPrivate(d); var a = this.doPublic(d);?

2、pkcs1unpad2 //return null?

就實現了js就可以使用公鑰解密,java端私鑰加密的文本

查看完整回答
反對 回復 2019-11-03
  • 7 回答
  • 1 關注
  • 11257 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號