Bro*_*her 12 java string javafx password-protection
我目前正在学习JavaFX,我对JavaFX中的PasswordField没有返回密码的char或甚至字节数组的方法感到有点困惑.相反,我必须使用返回String的getText().
正如你在这里可以看到的那样, swing决定将getText()方法标记为depricated,并告诉程序员使用getPassword()代替它,它返回一个char数组.
如果我正确地取消了,那么char数组会更安全,因为你可以通过将所有值设置为0来完全擦除它们.那么为什么Oracle决定在JavaFx中使用字符串?是否有一些从堆中删除字符串的新方法?
编辑:据我所知,字符密码更加节省,因为我们可以删除它们(覆盖它们),而不是字符串.
实际上,字符串数组在其基本实现中使用了字符数组。它们都存储在虚拟机中,并且都可能不安全。
如果您不想依靠垃圾收集器来清理密码并销毁痕迹,请按照jewelsea 在评论中建议的操作并编写自己的代码。
至于为什么?唯一能够真正回答 Java 中发生任何事情的原因的实体是 Oracle。
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |