由于是用两种语言来进行加密解密,所以在细节上会存在各种各样的问题,导致加解密过程出现各种问题。前后端实现AES加解密(一)(二)中的示例已经考虑到了各种细节上的问题,按照上两篇去,是可以实现在前后端之间进行密文传输,并完成加密解密的。这里再将容易犯的错误进行归纳:
1.前后端指定向量(不是必须的)需要一致,长度必须是16byte。
2.前端需要引入cryto.js文件,后端需要引commons-codec.jar。其实后端并没有采用commons-codec的方式来实现加解密,只是用了一下它的base64加解密。
3.密钥过长的时候需要无政策限制文件。
4.有时候在后台对中文进行加密,前端解密的时候会报错:畸形的utf-8数据,这很有可能是后端对字符串加密的时候,没有将该字符串按照utf-8的格式转化为byte数组。
5.前端加密完成的字符串一定是base64格式的,后端加密完成的是一个byte数组,需要转成base64格式的字符串。
6.前端解密完成的字符串一定是utf-8格式的,后端解密完成的字符串是一个byte数组,需要转成utf-8格式的字符串。
前后端实现AES加解密(三):java与cryto.js的配合使用
最新推荐文章于 2024-08-12 15:21:24 发布