重要なデータの場合はString
の代わりにchar[]
を使用するこの提案/実践について既に知っています。それには複数の理由があります。一つは、彼らはもはや必要ありません直後機密データをクリーンアップすることです:今 Javaの機密データ:char [] vs String?ポイントは?
char[] passwd = passwordProvider.getKeyStorePassword();
KeyStore keystore = KeyStore.getInstance("JKS");
// TODO: Create the input stream;
keystore.load(inputstream, passwd);
System.arraycopy(new char[passwd.length], 0, passwd, 0, passwd.length);
// Please continue...
質問:機密データが来たときに(すなわちchar[]
を使用して)は、感覚(上記の特別ポイント)を作るんもともとString
値としてあなたに?例:
char[] passwd = passwordProvider.getKeyStorePassword().toCharArray();
KeyStore keystore = KeyStore.getInstance("JKS");
// TODO: using the passwd, load the keystore;
System.arraycopy(new char[passwd.length], 0, passwd, 0, passwd.length);
// Please continue...
ありがとうございます。
UPDATE2:この特定の状況(将来の変更やその他のことについては忘れてしまいます)では、「char配列の内容をクリアしていますか?
UPDATE1:それはWhy is char[] preferred over String for passwords?のコピーではありません 私は物語が何であるか知っています。私はこの特定の文脈で尋ねています、それはまだ意味がありますか?
[パスワードが文字列よりもchar \ [\]が優先されるのはなぜですか?](http://stackoverflow.com/questions/8881291/why-is-char-preferred-over-st-for-passwords) – Nilesh
私はそれがある意味があると思う。より多くのセキュリティシールドを持つ方がよいでしょう。また、異なるパスワードプロバイダに切り替えると、コードを変更する必要がなくなります。 – yeputons
あなたはそうです。しかし、私はこの特定の文脈で意味があるかどうかを学びたいと思っていましたが、その答えはノーではありません。 – Rad