我在使用以下代码来生成sessionkeu
public byte[] generateSessionKey() throws NoSuchAlgorithmException, NoSuchProviderException
{
KeyGenerator kgen = KeyGenerator.getInstance("AES","BC");
kgen.init(256);
SecretKey key = kgen.generateKey();
byte[] symmKey = key.getEncoded();
return symmKey;
}
并在此处打印
byte[] aa=encryptor.generateSessionKey();
String s1=new String(aa);
System.out.println(s1);
,输出
Çɤđy3F:¦ïó‹AOÜYu•{Öç„>r?Ô–
我正在做对吗?
答案 0 :(得分:1)
此new String(aa)
很可能不正确。它使用平台的默认字符集将extern
直接转换为字符串。这意味着它运行的每个平台可能会有所不同。
显示,传输或存储byte[]
字符串的常用方法包括base16 (hexadecimal)表示和base64。