Bu öneriyi/uygulamayı, hassas veriler için String
yerine char[]
kullanmak için zaten biliyoruz. Bunun için birden çok nedeni var. ŞimdiJava'ye duyarlı veriler: char [] vs String? Amaç ne?
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...
soru: o (özellikle yukarıda bahsedilen nokta), hassas veriler geldiğinde mantıklı (yani char[]
kullanarak) yok artık gerekli değildir ardına hassas veri sağı toparlamak için Orijinal olarak String
değeri olarak? peşin
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...
teşekkür: örneğin.
UPDATE2: Soruyu şu şekilde yeniden yazacağım: bu özel bağlamda (gelecekteki veya başka bir şeydeki değişiklikleri unutun), "char dizisinin içeriğini temizle" satırı herhangi bir fayda sağlıyor mu?
UPDATE1: Why is char[] preferred over String for passwords? 'un bir kopyası değil. Hikayenin ne olduğunu biliyorum. Bu özel bağlamda soruyorum, hala mantıklı mı?
Olası çoğaltılamaz [Parolalar için dize üzerinden neden char \ [\] tercih edilir?] (Http://stackoverflow.com/questions/8881291/why-is-char-preferred-over-string-for-passwords) – Nilesh
Sanırım biraz mantıklı. Daha fazla güvenlik kalkanına sahip olmak daha iyidir. Ayrıca, farklı şifre sağlayıcısına geçiş yaparsanız, kodunuzu değiştirmeniz gerekmez. – yeputons
Haklısınız. Ama bu özel bağlamda, cevabın hayır olduğu, mantıklı olup olmadığını öğrenmek istedim. – Rad