目录
一、安装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;}}}