后端会返回私钥和密文 前端解密显示。 demo: 私钥:71116124351000086120885615156312028545284142992533077116972523515775491781478 密文:045CF42905BF516E3AD2BB4D4AF5F699583740FB0AD7727D4D07969E828EF5E7CBE0863775409AE8DC6FC1C5EE138BB57D743C8B1B3531C758568A77CC1EAD4062D3F79B7935C7158206D24B4710C16428DA1F74028259F1A655F5
sm-crypto 地址: https://npm.runkit.com/sm-crypto
var sm2 = require("sm-crypto").sm2
let keypair = sm2.generateKeyPairHex()
publicKey = keypair.publicKey // 公钥
privateKey = keypair.privateKey // 私钥
console.log(publicKey, privateKey);
const cipherMode = 1 // 1 - C1C3C2,0 - C1C2C3,默认为 1
let encryptData = sm2.doEncrypt('hello world123', publicKey, cipherMode) // 加密结果
let decryptData = sm2.doDecrypt(encryptData, privateKey, cipherMode) // 解密结果
console.log(encryptData, decryptData);
如果是前端自己去生成的话,需要一个生成配对的公私钥,然后才行。就现在的需求,后端用他的 sm2 加密算法加密生成了私钥+密文,然后我前端好像没法去做这个配对吧,也没法解出来。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.