【发布时间】:2010-10-18 05:00:44
【问题描述】:
如何将用户输入的密码存储在内存中,并在不再需要后安全删除?
详细来说,目前我们有以下代码:
username = raw_input('User name: ')
password = getpass.getpass()
mail = imaplib.IMAP4(MAIL_HOST)
mail.login(username, password)
在调用login方法后,我们需要做些什么来用乱码填充包含密码的内存区域,以便有人无法通过核心转储来恢复密码?
有一个类似的问题,但是它是在 Java 中,并且解决方案使用字符数组: How does one store password hashes securely in memory, when creating accounts?
这可以在 Python 中完成吗?
【问题讨论】:
-
在IBM article 的底部附近,他们谈到了使用可变数据结构而不是不可变字符串。
-
上述评论中指向 IBM 文章的链接已失效,请使用 archived page。
-
我试图实现类似的东西并遇到了这个:sjoerdlangkemper.nl/2016/06/09/clearing-memory-in-python