JFinal自带的AesKit工具可以加密、解密字符串,且兼容微信公众号的加解密。但有如下问题:
1、会出现加密后数据显示乱码。(如果不展示密文,或对乱码现象无所谓的,可以不用处理)
情景再现与解决方案:
/** * 加密字符串,返回的是乱码 */ public static String encrypt(String content) { return new String(AesKit.encrypt(content, PropKit.get("aesKey"))); }
解决方案:
加密的数据为byte[]类型,不能直接通过new String()方式转换为String。可以用Base64Kit.encode()编码保存。使用时再用Base64Kit.decode()解码。
/** * “加密字符串,返回的是乱码”解决方案 */ public static String encrypt(String content) { return Base64Kit.encode(AesKit.encrypt(content, PropKit.get("aesKey"))); }