【问题标题】:How to add HMAC to CryptoJS AES encryption?如何将 HMAC 添加到 CryptoJS AES 加密?
【发布时间】:2015-03-15 23:13:37
【问题描述】:
CryptoJS 的便捷函数CryptoJS.AES.encrypt("some plaintext", "password") 似乎没有进行任何身份验证。
我看到 CryptoJS 提供了一个 HMAC class,但我对如何使用它来加密然后进行身份验证感到困惑。
我搜索了教程和其他问题,但没有找到。
如何使用上述 CryptoJS HMAC 类添加身份验证来验证CryptoJS.AES.encrypt 生成的密文?
【问题讨论】:
标签:
javascript
encryption
cryptography
aes
cryptojs
【解决方案1】:
cryptoJS 提供的 HMAC 的想法是让开发人员将加密数据和密钥都传递给它,以便它在另一端吐出 MAC。
以下是如何使用它为加密数据生成 MAC 的示例。这里的想法是 key 对象是您和受信任方之间用于验证加密数据完整性的共享密钥。
//Encrypt Data
var encryptObject = CryptoJS.AES.encrypt(content, key, { iv: yourIV });
//Calculate HMAC
var HMAC = CryptoJS.HmacSHA256(encryptObject.toString(), key);
有几件事要记住。
我认为您应该设置为验证一些数据!
还有一个工作示例,您可以查看http://meowcrypt.com/,这是我在浏览器中使用cryptoJS的谷歌驱动器文件加密服务。