当前位置: 首页 > 知识库问答 >
问题:

在Dart或Python中模拟字符[]用于密码存储[duplicate]

侯英达
2023-03-14

我在阅读关于在Java中使用char[]存储密码的问题时,发现有些语言没有字符数组。Dart和Python都使用对象列表而不是数组(Dart文档和Pythin示例教程)。据我所知,这意味着您无法覆盖内存,从而使应用程序面临内存转储攻击。

在Dart或Python中,有没有办法覆盖内存,从而避免这种攻击的可能性?

共有1个答案

唐昊焜
2023-03-14

回复:Python:

strings和bytes对象在Python中是不可变的,因此,更改它们的内容将创建一个新对象,而旧对象将在内存中保留一段时间,然后最终被垃圾收集,迟早会被新创建的对象覆盖。

OTOH您可以使用bytearrays,它是可变的-明显的缺点是您将被限制为8位字符。

注意:列表也是可变的,但是单字符字符串列表将有(缓解版本)相同的问题:不会留下“旧”列表,但各种项目将保留,直到垃圾收集

 类似资料:
  • 我已经创建了一个自定义用户存储提供程序,它将根据需要将用户从遗留系统迁移到KeyCloak的本地存储。

  • 存储密码 用户名和密码组合必须存储在某处。以下列表提到了一些受欢迎的地方: 文字:你现在应该熟悉这种方法。 SQL数据库:FreeRADIUS包含与SQL数据库交互的模块。 MySQL非常受欢迎,并且广泛用于FreeRADIUS。 目录:Microsof的Actve目录或Novell的电子目录是典型的企业级目录。OpenLDAP是一种流行的开源替代方案。 FreeRADIUS可以使用的用户文件和S

  • 过去一段时间以来, 许多的网站遭遇用户密码数据泄露事件, 这其中包括顶级的互联网企业–Linkedin, 国内诸如CSDN,该事件横扫整个国内互联网,随后又爆出多玩游戏800万用户资料被泄露,另有传言人人网、开心网、天涯社区、世纪佳缘、百合网等社区都有可能成为黑客下一个目标。层出不穷的类似事件给用户的网上生活造成巨大的影响,人人自危,因为人们往往习惯在不同网站使用相同的密码,所以一家“暴库”,全部

  • 我有一个Base64编码的字符串(这是AES加密的字符串)。我正试图将它存储在Firebase存储,然后从它下载。 我尝试过多种选择,例如 这不会在存储中保留base64字符串,而是将其转换为整数。我还尝试提供{contenttype:“application/base64”},但是putString似乎不起作用。 我只是在寻找一个非常简单的base64编码字符串到firebase存储的上传和下载

  • 有人能指导我如何在JavaSDK中模拟Azure Blob存储。 我想模拟连接字符串、SAS令牌、endpoint、容器名称。如果所有这些都得到了模拟,那么模拟BlobClient就很容易了。 参考代码是- public BlobServiceClient BlobServiceClient(){return new BlobServiceClientBuilder().connectionStr

  • 使用 phpass 库来哈希和比较密码 经 phpass 0.3 测试,在存入数据库之前进行哈希保护用户密码的标准方式。 许多常用的哈希算法如 md5,甚至是 sha1 对于密码存储都是不安全的, 因为骇客能够使用那些算法轻而易举地破解密码。 对密码进行哈希最安全的方法是使用 bcrypt 算法。开源的 phpass 库以一个易于使用的类来提供该功能。 示例 <?php // Include ph