程序员的资源宝库

网站首页 > gitee 正文

前端使用DES加密和解密(前端使用des加密和解密)

sanyeah 2024-04-01 11:22:19 gitee 6 ℃ 0 评论

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

以下是两种方式

方式一:

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');


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表