目录

一、安装sm2依赖

二、编写代码

1、data中绑定数据

2、公钥加密

3、私钥解密

4、按钮绑定一下,数据可见一下

三、完整代码


一、安装sm2依赖

npm install --save sm-crypto

二、编写代码

1、data中绑定数据

要改变的数据phone和过程数据copyphone,公钥publicKey和私钥privateKey

具体生成测试公钥私钥可参照SM2加解密

C1为65字节第1字节为压缩标识,这里固定为0x04

publicKey是’04’+公钥X+公钥Y

privateKey直接复制粘贴

实际运行情况下可参考RuoYi前后端分离(登录密码加密)更改为SM2加密,密钥由后端传输

export default {data() {return {copyphone: '',phone: '',publicKey: "",privateKey: "",}},

2、公钥加密

getphone() {const sm2 = require('sm-crypto').sm2;var publicKey = this.publicKey;//加密使用var encrText = this.phone;//例如var enxrText = this.phone;const cipherMode = 1;let encryptData = sm2.doEncrypt(encrText, publicKey, cipherMode) // 加密结果this.copyphone = encryptData;return '04' + encryptData;//04可不要具体看后端要求},

3、私钥解密

returnphone() {const sm2 = require('sm-crypto').sm2;var privateKey = this.privateKey;var encrText = this.copyphone;const cipherMode = 1let decryptData = sm2.doDecrypt(encrText, privateKey, cipherMode) // 解密结果this.copyphone = decryptData;//赋值方便处理return decryptData;}

4、按钮绑定一下,数据可见一下

原始数据 过程数据公钥私钥sm2加密按钮sm2解密按钮

三、完整代码

请放在Vue项目下运行

原始数据过程数据公钥私钥sm2加密按钮sm2解密按钮// npm install --save sm-crypto// 第一步就是安装依赖//解密使用 var privateKey = "私钥";//加密使用 var publicKey= "公钥"; export default {data() {return {copyphone: '',phone: '',publicKey: "自己生成好的填进来",privateKey: "自己生成好的填进来",}},methods: {getphone() {const sm2 = require('sm-crypto').sm2;//C1为65字节第1字节为压缩标识,这里固定为0x04//publicKey是'04'+公钥X+公钥Y//密钥对生成https://i.goto327.top/CryptTools/SM2.aspxvar publicKey = this.publicKey;//加密使用var encrText = this.phone;//例如var enxrText = this.phone;const cipherMode = 1;let encryptData = sm2.doEncrypt(encrText, publicKey, cipherMode) // 加密结果this.copyphone = encryptData;return '04' + encryptData;//04可不要具体看后端要求},returnphone() {const sm2 = require('sm-crypto').sm2;var privateKey = this.privateKey;var encrText = this.copyphone;const cipherMode = 1let decryptData = sm2.doDecrypt(encrText, privateKey, cipherMode) // 解密结果this.copyphone = decryptData;//赋值方便处理return decryptData;}}}