以下是我如何生成SecureRandom
:
byte[] arr = SecureRandom.getInstance("SHA1PRNG").generateSeed(32);
然后,我把它转换成这样的字符串:
String str = new String(arr)
最后,我尝试将字符串转换回原始字节数组:
byte[] arr2 = str.getBytes()
问题是最后一个语句没有返回我原来的字节数组......我错过了什么吗?
答案 0 :(得分:4)
然后,我把它转换成这样的字符串:
不要这样做!
这里有两个问题:
char
s!你不使用String
来保存二进制数据;或使用基于字符串的编码,例如Base64。
有关详细信息,请参阅CharsetDecoder
和CodingErrorAction
。