当前位置: 首页 > 面试题库 >

创建帐户时,如何将密码散列安全地存储在内存中?

慕意致
2023-03-14
问题内容

我们基于Web的应用程序使用在帐户创建期间指定的密码将用户帐户绑定到用户。对于Java,在将密码的哈希值保留在数据库中之前,如何安全地处理密码。

更具体地说,如何确保在足够短的时间间隔内对收集密码的字符串进行垃圾回收?


问题答案:

如果有可能(在Web应用程序中可能很困难),将密码存储在字符数组中比将其存储在字符串中更好。如果完成了密码的存储,则可以使用Array.fill()将其覆盖在内存中,并通过丢弃该密码使该引用可用于垃圾收集器:

Arrays.fill(password, ' ');
password = null;

我只是注意到,使密码为零可能有点偏执,但是如果可以放心,您可以这样做:)



 类似资料:
  • 问题内容: 因此,我在SO上发现应该将密码和“ salt”一起散列。(可在此处和此处找到文章。) 这是代码: 现在,我需要同时将和和保存在MySQL中,如下所示: ** 当然会被散列,而不是以纯文本形式存储。 我只是想知道以这种方式进行操作实际上是否有意义,因为通过这种方式,黑客或其他任何人也都可以理解吗?因此,如果他们破解了密码并且看到了密码,他们会自动知道密码是?还是因为他不知道密码(因为密码

  • 问题内容: 我想知道如何在Android中安全存储 加密密钥 吗?保护加密和秘密密钥的最佳方案是什么? 问题答案: 根据您的评论,您需要使用适用于当前Android版本和旧Android版本的本地密钥对数据进行加密 Android Keystore 旨在生成和保护您的密钥。但是它不适用于18级以下的API级别,并且在API 23级之前有一些限制。 您将需要一个随机对称加密密钥,例如AES。AES密

  • 在一个应用程序中,我使用Android密钥库。我已经为整个密钥库和每个密码条目设置了密码。因为这些密码是字符串,所以它们存储在代码的字符串成员中。 显然,如果我想发布应用程序,这是不安全的,因为潜在的攻击者可以反编译apk并获取密码,因为它是硬编码在应用程序中的。 我的问题是: 在上面的场景中:攻击者是否能够读取我的密钥库文件,或者(在无根手机上)该文件是否只能由我的应用程序访问,因此仅密码是不够

  • 我正在为拉拉维尔创建一个散列密码。现在有人告诉我使用Laravel哈希助手,但我似乎找不到它,或者我找错了方向。 如何创建laravel散列密码?在哪呢? 编辑:我知道代码是什么,但我不知道在哪里和如何使用它,所以它返回给我散列密码。如果得到散列密码,就可以手动将其插入数据库

  • 问题内容: 可能是一个非常新手的问题,但我一直在阅读,发现在理解密码的创建和存储方面有些困难。从我读过的内容中,md5 / hash密码是将其存储在数据库中的最佳方法。但是,我将如何首先创建这些密码? 因此,说我有一个登录页面,其中包含用户bob和密码bob123-我将如何1.将bobs密码输入数据库(以哈希开头)2.如何获取并确认哈希密码? 谢谢 问题答案: 编辑2017/11/09:请务必查看

  • 我在工作中被要求保护保存在Mysql数据库中的敏感数据。这个数据库包含几个表,其中一个表中的关键数据只能使用Django中的API来访问。对于这个API,只有一定数量的人可以访问它,因此他们将是唯一能够访问这个表中的数据的人。 因此,目前的问题是每个人都可以访问数据库和该表,因此我们决定使用AES在AES_ENCRYPT()和AES_DECRYPT()函数的帮助下加密该表中的所有数据(根据http