微信小程序、小游戏DES3加密解密实现,基于crypto

编程入门 行业动态 更新时间:2024-10-24 22:17:39

微信小程序、<a href=https://www.elefans.com/category/jswz/34/1769974.html style=小游戏DES3加密解密实现,基于crypto"/>

微信小程序、小游戏DES3加密解密实现,基于crypto

首先我们需要下载crypto-js的源代码,下载链接:

这里源代码用的是 github 上面的项目:

7000+ star 哟

如果觉得麻烦,可以下载笔者做的DEMO,拿来主义你懂滴?

小游戏:

小程序:

然后我们需要引入 crypto-js库的入口文件 crypto-js.js

接下来就是加密解密的代码了。

加密:

为了方便复制粘贴,我这里再加上文本格式的:

var key = "aaaaaaaa";var data = '这是一个要被加密的字符串'console.log("原始字符串:" + data);var keyHex = CryptoJS.enc.Utf8.parse(key);
var encrypted = CryptoJS.DES.encrypt(data, keyHex, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7
});var encryptData = encrypted.toString();console.log("加密之后的结果:" + encryptData);var encodedData = encodeURIComponent(encryptData);console.log("加密并且URL编码之后的结果:" + encodedData);

最后的url编码,如果你要用http请求来发送就需要编,否则传输过程中,有的特殊符号会出现问题,笔者这里出现过 + 变为 空格的情况,这样服务器就无法解密了。也有可能有的请求库内部封装了url编码,这个也可以省略

接下来是解密的代码:

同样为了方便复制粘贴,我这里附上文本格式的代码:

var key = "aaaaaaaa";var decodedData = decodeURIComponent(encodedData);console.log("URL解码之后的结果:" + decodedData);var keyHex = CryptoJS.enc.Utf8.parse(key);
var decrypted = CryptoJS.DES.decrypt({ciphertext: CryptoJS.enc.Base64.parse(decodedData)
}, keyHex, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});var decryptedData = decrypted.toString(CryptoJS.enc.Utf8);
console.log("解密之后的结果:" + decryptedData);

同理,解密一开始的 url 解码有时候可能不需要,一般 http 请求回来的结果默认是 url 解码过的,大家可以根据自己的情况来使用。

附上demo打印的日志,微信开发者工具里面的日志截图:

可以看到,加密之后再解密,得到了同样的字符串!

更多推荐

微信小程序、小游戏DES3加密解密实现,基于crypto

本文发布于:2024-02-06 03:36:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1746107.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小游戏   加密解密   程序   微信小   crypto

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!