生成会话密钥的问题
Issue in generating session key
我用下面的代码来生成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?Ô–
我做的对吗?
这个new String(aa)
很可能是不正确的。它使用平台的默认字符集直接将 byte[]
转换为字符串。这意味着它运行的每个平台都可能不同。
将byte[]
显示、传输或存储为字符串的常用方法包括base16 (hexadecimal) representation, and base64。
我用下面的代码来生成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?Ô–
我做的对吗?
这个new String(aa)
很可能是不正确的。它使用平台的默认字符集直接将 byte[]
转换为字符串。这意味着它运行的每个平台都可能不同。
将byte[]
显示、传输或存储为字符串的常用方法包括base16 (hexadecimal) representation, and base64。