3DES+Base64使用记录~

本文分享了在Node.js与Vue项目中使用3DES加密的实际经验,包括问题解决与注意事项,如参数类型、加密后处理及解密常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此篇文章没有干货,仅仅是为了记录自己使用3DES加密的问题。为了以后翻起来能找的到。闲话说叙。项目是用NodeJs+vue+element_UI库搭建而成。所以直接npm模块引入了:

crypto-js模块引入:

npm install crypto-js --save 
npm install js-base64 --save复制代码

1、原始方法:

let Base64 = require("js-base64").Base64
let CryptoJS = require("crypto-js")复制代码

//加密
encryptByDES(message, key){
        //对key值做处理
        const keyHex = CryptoJS.enc.Utf8.parse(key);
        const encrypted = CryptoJS.DES.encrypt(message, keyHex, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
         });
        const str = encrypted.toString();
        //Base64加密
        return Base64.encode(str)
}
 
//解密
decryptByDES(str, key){
        //先解base64
        const ciphertext = Base64.decode(str);
         //处理key值
        const keyHex = CryptoJS.enc.Utf8.parse(key);
        // direct decrypt ciphertext
        const 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);
}
 
 
const _key = 'abcdefghijklmn'
const _password = '123456'
 
//加密
console.log(this.encryptByDES(_password,_key))
//解密
console.log(this.decryptByDES(_password,_key))复制代码

2、简单方法:直接加密存库

import sha256 from 'crypto-js/sha256';  
import hex from 'crypto-js/enc-hex';复制代码

hex.stringify(sha256(this.model.password))复制代码

3、采坑总结,建议传入参数都为字符串,不然会出错。如果是obj的话,可以用JSon.stringgify()转一下。还是不要单用3DES,用3DES加密之后再用Base64加密,保证是4的倍数。因为其解密不是4的倍数会出错的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值