前端使用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