java关于加密key保存乱码问题

当我们无论使用对称加密还是非对称加密都会涉及到key,随机生成的key一般是byte[] 类型,通过String进行保存的时候就会出现无法识别问题,并且读取后无法识别问题。这个时候通过encode和decode方法进行处理。少废话,上代码

以下以aes为例:

        String content = "test中文";
        //随机生成密钥
        byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();

        String keyStr = Base64.encode(key);

        log.info("key: {}", keyStr);
//构建
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, Base64.decode(keyStr));

//加密为16进制表示
        String encryptHex = aes.encryptHex(content);
//解密为字符串
        String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);

        log.info("password: {},      {}",encryptHex, decryptStr);

注: demo依赖了hutools的包,具体查看hutools的官方https://hutool.cn/

 

posted on 2022-11-02 17:10  风在吹……  阅读(328)  评论(0)    收藏  举报