我需要将secretKey.getEncoded()从byte []转换为String,以便将密钥保存到db并通过消息将密钥发送给另一方。
现在我想在Base64中做到这一点(24字节),但另一方只能以UTF-8格式读取它((16字节)] >>
我尝试这样做:String str = new String(bytes, Charsets.UTF_8);
,但是我得到了带有如下引号的乱码乱码:k��$��v/~M�6�L�
正确的方法是什么?
public static String generateAESKey() throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128);
SecretKey secretKey = kgen.generateKey();
return new String(Base64.encode(secretKey.getEncoded(), Base64.NO_WRAP));
}
我需要将secretKey.getEncoded()从byte []转换为String,以便将密钥保存到db并通过消息将密钥发送给另一方。现在我想到要在Base64(24个字节)中执行此操作,但是...