vue中SM4的使用


sm4加密有两种模式:ecb和cbc。

第一种:npm引用

npm install gm-crypt 
export default {
  components: {},
  props: {},
  data() {
    return {
      Account: "", //用户账号
      Pwd: "", //用户密码
      time: ""
    };
  },
  computed: {},
  created() {},
  watch: {},
  methods: {
    // 登录
    login() {
      // 引用sm4包进行加密
      const SM4 = require("gm-crypt").sm4;
      let sm4Config = {
        //配置sm4参数
        key: "HENG1AN2WEN3YIN4",//这里这个key值是跟后端要的
        mode: "ecb", // 加密的方式有两种,ecb和cbc两种,也是看后端如何定义的,不过要是cbc的话下面还要加一个iv的参数,ecb不用
        cipherType: "base64" // 
      };

      let sm4 = new SM4(sm4Config);//这里new一个函数,将上面的sm4Config作为参数传递进去。然后就可以开心的加密了
      let Account = sm4.encrypt(this.Account); //账号加密
      let Pwd = sm4.encrypt(this.Pwd); //密码加密

第二种:直接引用js

1.在index.html中全局引用

<script src="./sm4.js" type="text/javascript"></script>    //此处引入的sm4的包

相关js文件可从这里下载:链接: https://pan.baidu.com/s/1RfDe079I6n46spyw-mzDKg 提取码: vei2

2.定义封装加密解密的方法

 * 加密工具函数
 * @param {String} text 待加密文本
 */
export function encrypt(text) {
  const s4 = new SM4Util();
  s4.secretKey = "22HDESaAhiHHugDz";    //key就是自定义加密key,自己定义的简单串;
  s4.iv = "1234567891011121"   //iv是initialization vector的意思,就是加密的初始话矢量,
  								初始化加密函数的变量,也叫初始向量。 
  								(本来应该动态生成的,由于项目没有严格的加密要求,直接写死一个)
  return s4.encryptData_CBC(text);
}

/**
 * 解密工具函数
 * @param {String} text 待解密密文
 */
export function decrypt(text) {
  const s4 = new SM4Util();
  s4.iv = "1234567890111111"
  s4.secretKey = "11HDESaAhiHHugDz";
  return s4.decryptData_CBC(text);
}

3.组件中调用

submit() {
  let username = document.getElementById("username").value;
  let password = document.getElementById("pwd").value;
  let use = encrypt(username);
  let pwd = encrypt(password);
    let params = {
    use,
    pwd,
  };
  this.$server.toLogin(params).then((res) => {
    console.log(res, "登录成功");  
  });
},

Vue 3项目中使用SM4算法通常是为了进行加密和解密操作。SM4是一种分组加密标准,广泛应用于商业领域。要在一个Vue 3项目中使用SM4,你可以通过npm安装支持SM4算法的JavaScript库,然后在你的Vue组件或者服务层中调用相应的加密和解密函数。 以下是使用SM4算法进行加密和解密的简要步骤: 1. 安装支持SM4的JavaScript库,例如`js-sm4`,可以通过npm命令来安装: ``` npm install js-sm4 ``` 2. 在你的Vue项目中引入该库,并创建一个服务或工具函数来处理加密和解密的逻辑。 3. 使用该库提供的接口进行数据的加密或解密操作。通常需要提供密钥,并且根据需要加密或解密的数据来调用相应的函数。 下面是一个简单的示例代码,展示如何在Vue 3项目中使用`js-sm4`库进行加密操作: ```javascript <template> <div> <!-- 你的模板内容 --> </div> </template> <script> import SM4 from 'js-sm4'; export default { name: 'YourComponentName', data() { return { message: '这是需要加密的信息', encryptedMessage: '', decryptedMessage: '', }; }, methods: { encrypt() { const key = '这里是16字节的密钥'; const sm4 = new SM4(key); const encrypted = sm4.crypt(this.message); this.encryptedMessage = encrypted; }, decrypt() { const key = '这里是16字节的密钥'; const sm4 = new SM4(key); const decrypted = sm4.crypt(this.encryptedMessage); this.decryptedMessage = decrypted; } } }; </script> ``` 在上面的代码中,你需要替换`这里是16字节的密钥`为你实际使用的密钥,并且确保密钥满足SM4算法的长度要求(通常是16个字节)。`encrypt`和`decrypt`方法分别用于执行加密和解密操作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值