前端DES加密

408 阅读1分钟

在前端进行DES加密可以使用JavaScript中的库来实现。一个常用的库是CryptoJS,它支持多种加密算法,包括DES。以下是一个简单的示例,展示了如何在前端使用CryptoJS进行DES加密:

首先,确保你已经在你的项目中引入了CryptoJS。你可以通过npm或者CDN来获取这个库。

import CryptoJS from "crypto-js";
// 加密函数
export function encryptDES(message, key) {
    // 将密钥转换为WordArray格式
    var keyHex = CryptoJS.enc.Utf8.parse(key);
    
    // 使用DES算法进行加密,输出为密文
    var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
        mode: CryptoJS.mode.ECB, // 选择加密模式
        padding: CryptoJS.pad.Pkcs7 // 选择填充方式
    });
    
    // 返回密文的Base64编码格式
    return encrypted.toString();
}

// 解密函数
export function decryptDES(ciphertext, key) {
    // 将密钥转换为WordArray格式
    var keyHex = CryptoJS.enc.Utf8.parse(key);
    
    // 使用DES算法进行解密,输出为明文
    var decrypted = CryptoJS.DES.decrypt({
        ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
    }, keyHex, {
        mode: CryptoJS.mode.ECB, // 选择解密模式
        padding: CryptoJS.pad.Pkcs7 // 选择填充方式
    });
    
    // 返回明文的UTF-8编码格式
    return decrypted.toString(CryptoJS.enc.Utf8);
}

// 示例用法
var message = 'Hello, world!';
var key = '12345678'; // DES密钥必须是8个字符

var encrypted = encryptDES(message, key);
console.log('加密后的密文:', encrypted);

var decrypted = decryptDES(encrypted, key);
console.log('解密后的明文:', decrypted);