2

(最終的にヒープになる) 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);
}

私たちは多くの異なる言語をサポートしているため、このアプローチを徹底的にテストする最善の方法はよくわかりません.

  1. これは正しいです?このアプローチに注意点はありますか?
  2. これが最善のアプローチですか、それとももっと簡単なものがありませんか?

フィードバックやアドバイスをありがとう。

4

1 に答える 1