前端使用DES加密和解密


在实际开发中,会用到前端请求后台接口时对请求参数进行加密处理。

以下是两种方式

方式一:

import CryptoJS from "crypto-js";

// DES加密
export const encryptDes = (message, key) => {
    var keyHex = CryptoJS.enc.Utf8.parse(key);
    var option = { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 };
    var encrypted = CryptoJS.DES.encrypt(message, keyHex, option);
    return encrypted.ciphertext.toString()
}

// DES解密
export const decryptDes = (message, key) => {
    var keyHex = cryptoJs.enc.Utf8.parse(key)
    var decrypted = cryptoJs.DES.decrypt({
        ciphertext: cryptoJs.enc.Hex.parse(message)
        },keyHex, {
        mode: cryptoJs.mode.ECB,
        padding: cryptoJs.pad.Pkcs7
        })
    return decrypted.toString(cryptoJs.enc.Utf8)
}

方式二:

import CryptoJS from 'crypto-js';

// DES加密
export const encryptByDES = (message, key) => {
    var keyHex = CryptoJS.enc.Utf8.parse(key);
    var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });
    return encrypted.toString();
}

// DES解密
export const decryptByDES = (ciphertext, key) => {
    var keyHex = CryptoJS.enc.Utf8.parse(key);
    // direct decrypt ciphertext
    var decrypted = CryptoJS.DES.decrypt({
        ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
    }, keyHex, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });
    return decrypted.toString(CryptoJS.enc.Utf8);
}

使用方法:

import { encryptByDES, decryptByDES } from "@lib/des"

const { user, pas } = userInfo
const userName = encryptByDES(user, '*abc123');
const passWord = encryptByDES(pas, '*abc123');



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM