cryptojs支持rsa加密_JavaScript (Node)对3DES,RSA加解密的一些实践

本文介绍了在JavaScript环境下使用crypto-js库进行3DES加密解密的实践,包括处理初始向量和密钥的方法。同时,文章讨论了在Node.js中使用内置crypto库进行RSA加密,强调了不同环境下的实现差异,并提到了sshpk库用于处理PKCS8到PKCS1的转换。

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

最近公司做一个对接遗留系统的UI,由于老系统的REST API格式非常奇葩,我们决定写一个所谓的sdk来封装一些纯业务逻辑的API调用。其中有一个模块用到了access token的交互,需要做3DES和RSA的加密,解密。

本来我对一些加解密算法也不是很熟悉,只要OpenSSL会用到RSA算法,但算法具体是咋样的,还真没研究过,这里也不会提及。这里主要是记录一下在使用JavaScript做这些算法时遇到的坑。

先说3DES相关的,业务逻辑其实比较简单,就是Server发来一个加密过的base64字符串,由Client端用3DES算法来解密。Clinet预置了key,看似直接解密就可以。上网找了一下JavaScript对于3DES算法的库,大多数人建议用crypto-js。这里的问题是crypto-js文档不够详尽,很多参数没有说清楚到底如何处理。

直接上代码来解释

const CryptoJS = require('crypto-js');

const iv = CryptoJS.enc.Utf8.parse('01234567');

const options = {

iv,

padding: CryptoJS.pad.Pkcs7,

mode: CryptoJS.mode.CBC

};

exports.decrypt = (secret, key) => {

const utf8Key = CryptoJS.enc.Utf8.parse(key);

const decrypted = CryptoJS.TripleDES.decrypt(secret, utf8Key, options);

return CryptoJS.enc.Utf8.stringify(decrypted);

};

exports.encrypt = (plaintext, key) => { <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值