加解密的乱码问题与解决方案

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")));
}


评论区

热门分享

扫码入社