Python对内存的控制没有那么低。接受它,继续前进。在 最好的 ,你可以做的是
delpassword调用后
mail.login,这样的口令字符串对象的引用依然存在。任何声称能够做得更多的解决方案,只会给您一种错误的安全感。
Python字符串对象是不可变的。创建字符串后,没有直接方法可以更改它的内容。 即使
您能够以某种方式覆盖所引用的字符串的内容(在
password愚蠢的ctypes技巧上,这在技术上是可行的),仍然会有在各种字符串操作中创建的其他密码副本:
- 由getpass模块在将结尾的换行符从输入的密码中删除时
- 由imaplib模块引用密码时,然后创建完整的IMAP命令,然后将其传递给套接字
您将不得不以某种方式获取所有这些字符串的引用,并覆盖它们的内存。



