通过消除字符串中的存储(最终在堆上)使密码处理更加安全。我有以下现有代码:
String pw = new String(buffer, 0, len, "UTF-32LE");
我想出了:
Charset charSet = Charset.forName("UTF-32LE");
ByteBuffer byteBuffer = ByteBuffer.wrap(buffer, 0, len);
CharBuffer charBuffer = charSet.decode(byteBuffer);
charArray = new char[charBuffer.length()];
for (int i = 0; i < charBuffer.length(); ++i)
{
charArray[i] = charBuffer.charAt(i);
}
请注意,我们支持许多不同的语言,所以我不太确定如何最好地彻底测试这种方法。
- 这个对吗?这种方法有警告吗?
- 这是最好的方法还是我错过了一些更简单的方法?
感谢您的任何反馈或建议。