DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > 经验分享 > Java开发

BadPaddingException:Givenfinalblocknotproperlypadded异常解决

项目在用Spring的EncryptionUtils加密解密时抛出这个异常,看了下异常日志,是在解密的时候抛出的,再看解密代码。


private final String ENCYPTION_KEY = "9849844146badfasdf97892345";



//加密

String loginName="aaa@111.com";


EncryptionUtils.encrypt(ENCYPTION_KEY, loginName);


生成加密字符串unique="jCLR5xpzSeSREmTt+ ZgcnA==" 忘记密码模板


//解密

String name = EncryptionUtils.decrypt(ENCYPTION_KEY, unique);


debug一下,发现unique="jCLR5xpzSeSREmTt ZgcnA==","+"不见了,name也出现了乱码,不等于aaa@111.com了,


问了老大一下,发现原因,原来没有对加密字符串进行编码,导致+变成空的,改正加密代码


java.net.URLEncoder.encode(EncryptionUtils.encrypt(ENCYPTION_KEY, loginName), "UTF-8");


最终生成unique="jCLR5xpzSeSREmTt% ZgcnA==";  


+号变成%分号了,解密,一切正常!!!

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号