AES加密前后端加解密不一致
1.前端库jCryption 3.1.0 调用CryptoJS.AES.encrypt使用aes-256-cbc加密数据得到的密文为一个Object
将这个Object转化为字符串,得到一个base64编码的字符串:
U2FsdGVkX1+MJ0CMwQcBvyk+SpiaVkIkRtw9pw2uT8hQL8y+1Y9pqaLYvdtZ7GqCbo0De2BdZWAKq5cbld2/GROMhdZXrNCWU+Ue7hS2Y8+Vgd0Hhe+dbdQ2rfWfop8UoKax3UreaWFVO7f0e6rb3VJGYFXDiQEFSKE3Ty0SJo9FqV/1utSi4nVwT5zC0ePAHWJErHiUDg4SVxbzRmr38g==
但是在后端nodejs中无法解析这段base64编码的值
node.js 中的 aes-256-cbc 是怎么实现的,怎么才能跟其他的实现保持一致呢?
求指教。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以确定jCryption的调用方法不对,最终输出结果不应该是一个obj 建议查看官方demo
aes是一种对称加密算法。
应该双方都持有一个密钥。
base64有标准base64实现和RFC-2045实现,两者区别在于是否会在后面加上一个rn
还有一种urlbase64,专门处理http请求的参数base。
你这个需要看下内部实现用的是哪一种,一般加解密错误都是算法转化环节出了错误
还有你需要确认后端解密使用用的是256,cbc模式的解密?
aes-256-cbc
aes:加密算法
256:加密摘要长度
cbc:密文链接模式
这些都需要跟后端进行确认