我读了关于使用char[]在Java中存储密码的问题,意识到有些语言没有字符数组。Dart和Python都使用对象列表而不是数组(Dart文件和Python示例教程)。据我所知,这将意味着您不能覆盖内存,从而将应用程序留给内存转储攻击。
有没有一种方法可以覆盖内存,从而避免Dart或Python中的这种攻击?
发布于 2022-10-07 14:15:24
Re: Python:
string和bytes对象在Python中是不可变的,因此是的,更改它们的内容将创建一个新对象,而旧对象将在内存中保留一段时间,然后最终被垃圾收集,并且迟早会被新创建的对象覆盖。
OTOH您可以使用bytearray,这是可变的-明显的缺点是,您将被限制为8位字符。
注意:列表也是可变的,但是一个字符字符串的列表将有相同的问题:不会留下“旧的”列表,但是各个项将一直保留到垃圾收集。
https://stackoverflow.com/questions/73988380
复制相似问题