(最終的にヒープになる) Strings 内のストレージを排除することで、パスワード処理をより安全にします。次の既存のコードがあります。
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);
}
私たちは多くの異なる言語をサポートしているため、このアプローチを徹底的にテストする最善の方法はよくわかりません.
- これは正しいです?このアプローチに注意点はありますか?
- これが最善のアプローチですか、それとももっと簡単なものがありませんか?
フィードバックやアドバイスをありがとう。