【问题标题】:Why i need to use Base64 in this encryption为什么我需要在此加密中使用 Base64
【发布时间】:2013-04-20 10:56:38
【问题描述】:

我在 java 中看到了加密。在生成密钥时,他们拥有

 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);

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

【问题讨论】:

  • “我很困惑。”确实... ;)

标签: java security encryption base64


【解决方案1】:

并非每个字节序列都代表一个有效的Stringyou need to know the character encoding in order to interpret a sequence of bytes as a string。由于 Java 的 char 是 16 位的,因此随机的字节序列最终可能代表一个包含无效代码点的字符串。使用 Base-64 编码通过确保所有元素都是 [A-Za-z0-9+/] 范围内的有效字符来解决此问题。

【讨论】:

猜你喜欢
  • 2020-05-03
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 2021-11-12
  • 2016-09-06
相关资源
最近更新 更多