AES加密前后端加解密不一致

1.前端库jCryption 3.1.0 调用CryptoJS.AES.encrypt使用aes-256-cbc加密数据得到的密文为一个Object

clipboard.png

将这个Object转化为字符串,得到一个base64编码的字符串:

U2FsdGVkX1+MJ0CMwQcBvyk+SpiaVkIkRtw9pw2uT8hQL8y+1Y9pqaLYvdtZ7GqCbo0De2BdZWAKq5cbld2/GROMhdZXrNCWU+Ue7hS2Y8+Vgd0Hhe+dbdQ2rfWfop8UoKax3UreaWFVO7f0e6rb3VJGYFXDiQEFSKE3Ty0SJo9FqV/1utSi4nVwT5zC0ePAHWJErHiUDg4SVxbzRmr38g==

但是在后端nodejs中无法解析这段base64编码的值

clipboard.png

node.js 中的 aes-256-cbc 是怎么实现的,怎么才能跟其他的实现保持一致呢?
求指教。

阅读 12.8k
2 个回答

可以确定jCryption的调用方法不对,最终输出结果不应该是一个obj 建议查看官方demo

aes是一种对称加密算法。
应该双方都持有一个密钥。

base64有标准base64实现和RFC-2045实现,两者区别在于是否会在后面加上一个rn
还有一种urlbase64,专门处理http请求的参数base。

你这个需要看下内部实现用的是哪一种,一般加解密错误都是算法转化环节出了错误

还有你需要确认后端解密使用用的是256,cbc模式的解密?
aes-256-cbc

  • aes:加密算法

  • 256:加密摘要长度

  • cbc:密文链接模式

这些都需要跟后端进行确认

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题