0

我很有趣下面的代码来生成 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?Ô–

我做对了吗?

4

1 回答 1

1

new String(aa)很可能是不正确的。byte[]它使用平台的默认字符集直接将 转换为字符串。这意味着它对于运行的每个平台都可能不同。

显示、传输或存储byte[]为字符串的常用方法包括base16(十六进制)表示和base64

于 2016-06-07T07:59:06.677 回答