1

我在 java.In 中看到了加密,以生成他们拥有的密钥

 KeyGenerator keyGen = KeyGenerator.getInstance("DES");
 Key secretKey = keyGen.generateKey();

 byte[] keyBytes = secretKey.getEncoded()
 Key secretKey = keyGen.generateKey();

 byte[] key = secretKey.getEncoded();

 byte[] encodedKey=Base64.encodeBase64(key );

 String keyText = new String(encodedKey);

我的问题是为什么需要使用 Base64.encodeBase64(key). 如果我直接使用有什么问题

String keyText = new String(key);

我很困惑。请帮助我。提前谢谢...

4

1 回答 1

2

并非每个字节序列都代表一个有效的String您需要知道字符编码才能将字节序列解释为字符串。由于 Javachar是 16 位的,因此随机的字节序列最终可能代表一个包含无效代码点的字符串。使用 Base-64 编码通过确保所有元素都是[A-Za-z0-9+/]范围内的有效字符来解决此问题。

于 2013-04-20T11:01:56.003 回答