Cryptojs – JavaScript加密库
Import
1 |
|
Usage
1 |
|
Extend
- 密钥和偏移量:一般情况下密钥为加密方与解密方双方约定好的,但如果长期使用同一密钥,对相同内容加密后的结果一致,容易被找出规律。所以,可以在双方交互时添加一个参数——偏移量,偏移量明文传递,并且每次请求都不同,但在一次交互过程中,双方使用同一偏移量,这样就可以使加密相同内容时结果每次都不同,间接提高安全性。
- 加密模式:电码本模式(Electronic Codebook Book (ECB));密码分组链接模式(Cipher Block Chaining (CBC));计算器模式(Counter (CTR));密码反馈模式(Cipher FeedBack (CFB));输出反馈模式(Output FeedBack (OFB))。ECB模式下偏移量不生效。具体各种模式的原理这里不再描述(参考资料1)。
- 填充模式:.NET和Java中并不完全通用,经过与安卓开发的同事踩坑与测试后,发现None和ISO10126两种填充模式,在两个平台是通用的。理论上PKCS7/PKCS5应该也是通用的(参考资料2/参考资料3)。
- 编码格式:之前做项目时因为编码的问题耽误了不少时间。
- 没有绝对的安全。
相关项目
- Google项目地址:https://code.google.com/archive/p/crypto-js/
- npm项目地址:https://www.npmjs.com/package/crypto-j
- GitHub项目地址:https://github.com/brix/crypto-js
Cryptojs – JavaScript加密库
https://awaw.cc/post/js-cryptojs/