使用java8 Base64要小心

java8 Base64的 getEncoder和getMimeEncoder、getDecoder和getMimeDecoder不能乱用。

我在AES加密的时候就吃过亏,

  1. 开始加密使用的是getEncoder,解密使用的是getDecoder。结果无法正常解密。具体报错忘记了,可以参见下面参考文件。
  2. 接着,我加密使用还是getEncoder,解密使用了getMimeDecoder。结果在有些情况下加密解密是没有问题的;但是有时候还是会出现解密失败。
  3. 最后我把所有的加密使用了getMimeEncoder、解密使用了getMimeDecoder。然后问题就解决了。

具体原因可以参考下面文章,其实我也不是很懂。如果您懂,欢迎留言。

使用java8的java.util.Base64报“java.lang.IllegalArgumentException: Illegal base64 character d”的问题

你可能感兴趣的:(java8)