gpt4 book ai didi

java - 阻止操作系统将对象交换到 Java 中的虚拟内存/磁盘?

转载 作者:行者123 更新时间:2023-12-02 12:58:51 25 4
gpt4 key购买 nike

所以我有一个程序让用户输入密码。在覆盖它之前,我只在 char[] 中保留密码短语几秒钟,但我想知道 Java 中是否有一种方法可以阻止操作系统将此位交换到磁盘/虚拟内存/任何其他位置比 RAM 更持久的存储?关于这个主题的研究似乎说不,没有办法,但还没有给我一个直接的答案。我也不确定是否可以通过某种方式使用 mlock() 或通过保持对值的引用处于 Activity 状态直到我不再需要它来实现此目的。

谢谢!

最佳答案

您需要做的是:使用char[]来存储密码。当你完成密码后,只需用 0 覆盖数组,这样,如果攻击者试图扫描所有内存来查找密码,而 Java GC 在此之前还没有删除该变量,那么攻击者就不会能够检索密码,因为您已经覆盖了数组本身。

干杯。

编辑:当内核开始使用 HDD 来减轻 RAM 上的压力时,HDD 上的空间就像 RAM 一样,这意味着它不会永久存储为其提供的数据。

关于java - 阻止操作系统将对象交换到 Java 中的虚拟内存/磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30927108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com