vue项目中使用des加密解密

前端有时把数据传给后端,也是需要加密的,这里介绍下des加密:

DES 加密算法为最为常见的分组加密算法。其主要思想在于数据位的置换与移位过程,通过16次的迭代加密与最终的逆置换得出最终的密文。DES 的解密方式只需按照加密的逆过程求解即可。由于DES 加密过程的算法是公开的,所以密钥K的保密就显得尤为重要,只有发送方与接收方采用相同的密钥进行加密解密才能获取明文数据。

在vue中使用DES加密解密需要使用crypto-js插件,首先下载  npm install crypto-js

加密方法如下:

/*
* message:需要加密的字符串,对象加密需要转成json字符串
* key: 密钥(加密解密密钥同一个)
*/
encryptDes (message, key = 'xxxxxxxxxxxxxxxxxxxxx') {
    const keyHex = cryptoJs.enc.Utf8.parse(key)
    const option = { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 }
    const encrypted = cryptoJs.DES.encrypt(message, keyHex, option)
    return encrypted.ciphertext.toString() // 返回hex格式密文,如需返回base64格式:encrypted.toString()
  }

解密方法如下:

/*
* message:需要解密的字符串,
* key: 密钥(加密解密密钥同一个)
*/
  decryptDes (message, key = 'xxxxxxxxxxxxxx') {
    const keyHex = cryptoJs.enc.Utf8.parse(key)
    const decrypted = cryptoJs.DES.decrypt(
      {
        ciphertext: cryptoJs.enc.Hex.parse(message)
      },// 若message是base64格式,则无需转16进制hex,直接传入message即可
      keyHex,
      {
        mode: cryptoJs.mode.ECB,
        padding: cryptoJs.pad.Pkcs7
      }
    )
    return decrypted.toString(cryptoJs.enc.Utf8)
  }

扩展:

此外常用的还有MD5加密,MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法。

一般登录的用户密码是用md5加密,系统中保存的也是加密后的用户密码,系统并不知道具体的用户密码是什么。

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。

原文地址:https://www.cnblogs.com/caofeng11/p/12833075.html