gpt4 book ai didi

java - 字节到字符串,反之亦然

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:30 25 4
gpt4 key购买 nike

我需要转换随机生成的盐值并将其存储在数据库中。为了将其存储在数据库中,我将其转换为字符串。然后为了检索原始值,我将其转换回字节。但两个值不匹配。我尝试过“UTF-8”、“UTF-16”、BASE64Encoder。

SecureRandom ranGen = new SecureRandom();
byte[] aesKey = new byte[16]; // 16 bytes = 128 bits
ranGen.nextBytes(aesKey);
System.out.println(aesKey);

String a=new String(aesKey,"UTF-16");
byte[] b=new byte[16];
b=a.getBytes("UTF-16");
System.out.println(b);

上述代码的输出(执行2次):

[B@11563ff
[B@1581593

[B@170888e
[B@11563ff

最佳答案

你真的应该使用 Base64用于将二进制数据转换为字符串。有很多免费的实现可用,例如 Apache Commons Codec 中找到的一个。 .

而且,它非常易于使用,例如:

对于编码:

import org.apache.commons.codec.binary.Base64;
...
byte[] abValue = {...}; // Your data to encode
Base64 base64 = new Base64();
String strEncodedData = base64.encodeToString(abValue).trim();

解码:

import org.apache.commons.codec.binary.Base64;
...
String strEncodedData = "..."; // Your previously encoded data
Base64 base64 = new Base64();
byte[] abValue = base64.decode(strValue);

关于java - 字节到字符串,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42651865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com