Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js des加密

作者:冷血杀手   发布日期:2025-02-28   浏览:116

// 引入CryptoJS库,这是一个常用的JavaScript加密库
// 可以通过CDN或者npm安装来引入
// <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>

// DES加密示例代码
function encryptByDES(message, key) {
    // 将密钥转换为字节数组,并确保长度为8个字节(DES要求)
    var keyHex = CryptoJS.enc.Utf8.parse(key.slice(0, 8));

    // 使用CBC模式和PKCS7填充方式对消息进行加密
    var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });

    // 返回Base64编码的加密结果
    return encrypted.toString();
}

// DES解密示例代码
function decryptByDES(ciphertext, key) {
    // 将密钥转换为字节数组,并确保长度为8个字节(DES要求)
    var keyHex = CryptoJS.enc.Utf8.parse(key.slice(0, 8));

    // 解密Base64编码的密文
    var decrypted = CryptoJS.DES.decrypt({
        ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
    }, keyHex, {
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });

    // 返回解密后的UTF-8字符串
    return decrypted.toString(CryptoJS.enc.Utf8);
}

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

var encrypted = encryptByDES(message, key);
console.log("Encrypted:", encrypted);

var decrypted = decryptByDES(encrypted, key);
console.log("Decrypted:", decrypted);

解释说明:

  1. 引入CryptoJS库:CryptoJS是一个流行的JavaScript加密库,支持多种加密算法,包括DES。
  2. 加密函数encryptByDES:该函数接受明文和密钥作为参数,使用DES算法进行加密,并返回Base64编码的加密结果。
  3. 解密函数decryptByDES:该函数接受Base64编码的密文和密钥作为参数,使用DES算法进行解密,并返回原始的明文。
  4. 密钥处理:DES算法要求密钥长度为8个字节,因此我们在代码中对密钥进行了截取处理。
  5. 示例用法:展示了如何使用上述函数进行加密和解密操作。

希望这段代码和解释对你有帮助!

上一篇:nestjs websocket

下一篇:js grid

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js 获取今天年月日

js jsonp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站