假设我将密码以纯文本形式存储在称为passWd
字符串的变量中。一旦我丢弃它(例如,使用del passWd
或passWd= 'new random data'
),python如何释放这个变量?
字符串是否存储为字节数组,这意味着它可以在它最初存在的内存位置被覆盖,还是它是内存区域中的固定集合,无法修改,并且在分配新值时新的内存区域是创建并且旧区域被丢弃但不被null覆盖?
我在质疑 Python 如何实现内存区域的安全性,并想了解更多,主要是因为我很好奇 :)
从我到目前为止收集到的信息来看,使用del
(or __del__
) 会导致解释器不会自动释放该变量的内存区域,这可能会导致问题,而且我不确定del是否会删除这些值。但这只是我收集到的东西,而不是黑色或白色的东西:)
我问的主要原因是,我打算编写一个移交应用程序,该应用程序获取一个字符串,执行一些 I/O,将其传递给另一个子系统(例如,树莓派的引导加载程序),并且接口写在Python(在某些人的耳朵里听起来一定很奇怪......)而且我不担心数据在 I/O 计算期间受到损害,但在两个子系统切换之间可能会发生内存转储。或者如果系统被冻结(比如休眠)说系统启动后 20 分钟,我尽可能快地删除了变量,但不知何故它仍然在内存中,尽管我做了一个del passWd
:)
(Ps。我问过超级用户,他们把我介绍到这里,我很抱歉语法不好!)