基于 Aes 前后端数据传输加密方案
- by Admin - 标签:
好久没更新了,觉得没啥值得记录的事情。今天忙着看美国大选。 刚巧有个项目对网站的前后端数据传输的安全性有较高要求。因为之前已经实现了,C# 端加密,网页调用 C# 接口实施数据加密,然后再提交到后端的案例。所以,索性研究下纯网页的 Js 通过 Aes-256-CBC 算法加解密数据,实现提交到后端的 Aes-256-CBC 数据加解密方案。
幸运的是,现在技术已经成熟。前端网页可以使用 JsEncrypt 和 CryptJs 完美实现网页端的 Rsa 公匙加密 Aes 对称密匙,然后通过对称密匙,加密解密网页与后端之间的数据传输。
后端实现的是基于 PHP openssl 的相关加解密自带函数。效果很好,甚至上传文件也可以安全快速加密。
唯一需要注意的一点是,CryptJs 加密后,PHP 端解密需要根据 CryptJs 的算法做些调整,才能完美解密。反方向,PHP 实现 Aes 加密后, CryptJs 可以直接轻松解密。
另外啰嗦一句,关于美国大选,我支持川普,因为他支持美国从全球撤军,希望以巴、俄乌早日停火。