我正在用 Python 编写一个程序,其中涉及对密码进行哈希处理。假设我用它来获取密码:
import getpass
password = getpass.getpass("Password: ")
然后对其进行哈希处理,有没有什么方法可以安全地从 RAM 中删除所有未哈希密码的痕迹?
正如前面所讨论的,即使您有自定义实现,也没有万无一失的方法可以在 python 中执行此操作(尽管这可能是一种方法)。
现在我不知道你的应用程序应该做什么,但我可以毫无疑问地告诉你,即使在哈希之后,你的数据在 RAM 中比在数据库中更安全。
记忆的工作方式非常复杂。每个进程都有自己的虚拟内存空间,该空间不必是连续的。完整的内存块被交换到磁盘并放回到另一个内存块中。整个内存只是一组字节,几乎不可能区分整数数组、字符串、猫或简单的随机数据。
一些数据块被部分地重新分配,从而产生大量的部分数据。想象一下这会是什么样子,1、2、8 甚至 16Gb 的随机数据,潜在的黑客必须在所有这些 0 和 1 中找到密码。
如果有人想在执行过程中破解您的密码,他需要以 root 身份实时访问计算机;由于我之前所说的原因,他不能仅通过事后查看交换来做到这一点。
但如果有人拥有这种访问权限,那么还有很多其他方法可以获取密码。例如,只需调试程序,或者更好,只需更改源代码并使其打印密码:)
大多数黑客不会费心去经历这样的麻烦。黑客攻击主要是关于社会工程学,这基本上是让用户自愿向黑客提供密码。Phishing就是这样一种方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)