当我们无论使用对称加密还是非对称加密都会涉及到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/
标签:encryptHex,aes,加密,String,乱码,key,java,decryptStr From: https://www.cnblogs.com/zhangdf/p/16851663.html