Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
擦除python中变量使用的ram空间,防止内存转储攻击_Python_Memory_Ram_Dump - Fatal编程技术网

擦除python中变量使用的ram空间,防止内存转储攻击

擦除python中变量使用的ram空间,防止内存转储攻击,python,memory,ram,dump,Python,Memory,Ram,Dump,正在用python寻找此问题的经验证的解决方案 我有这样的代码: verySensitveData = "secret, big secret" #useing verySensitveData in code #not need it any more del verySensitveData # now variable is unusable in later code collected = gc.collect() #collected and removed

正在用python寻找此问题的经验证的解决方案

我有这样的代码:

verySensitveData = "secret, big secret"
#useing verySensitveData in code
#not need it any more
del verySensitveData # now variable is unusable in later code 
collected = gc.collect() #collected and removed
现在,当调用gc时,它应该从RAM中消失

这是否会迫使操作系统使用GC自动擦除verySensitveData变量使用的地址上的数据

它应该永远消失了,没有ram内存转储可以检索变量verySensitveData中的数据?

否。
gc.collect()
只会导致Python检查被引用但无法访问的对象(例如,两个对象相互引用,但其他任何操作都不会)。它不会触发任何类型的内存清理


如果让您的程序抵抗内存转储很重要,那么Python不是编写它的合适语言。Python很少保证数据将如何存储在内存中,而且在处理过程中很可能会在内存中复制您处理的任何字符串,这可能会在内存中留下字符串的部分或完整副本。Python可能会重用该内存或稍后将其释放到操作系统,但不会采取任何特殊措施来擦除它。

此外,在使用字符串文本的特定情况下,该文本位于Python的内部字符串缓存中,因此理论上甚至不会释放它。