问题标签 [password-storage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 密码散列 - 行业标准
我知道可能已经有很多这样的问题了。但是,我真的没有找到我的问题的明确答案。
我知道密码存储在数据库中,前面带有随机盐,后跟散列密码。密码的值实际上是未知的(服务器和服务器管理员)。
什么是标准哈希算法?我知道密码学是一个动态领域,会随着时间而变化。所以我问的是当前的哈希行业标准是什么。
我将把它用于电子商务网站。所以密码存储的安全性其实很重要。
php - 使用 SHA512 代替 MD5 存储登录密码
我一直在网上阅读很多关于 MD5 不是很安全的信息,我决定将我的网站切换为使用 SHA512,我以前从未这样做过,所以我只是要求你检查一下我是否正确地完成了它,还是有另一种更安全的哈希方法可以用来存储密码?
$uppass 是我需要散列的用户密码。
这是我的原始 PHP 与 MD5 :
这是我使用 SHA 的新 PHP:
这里也是“密码”这个词的散列字符串,只是为了确保散列是有效的。
SHA512:
b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e
MD5:
5f4dcc3b5aa765d61d8327deb882cf99
感谢您提前提供任何帮助/建议。
java - 这是在Java中拥有密码的安全方法吗
我正在从 Java 中的给定密码创建哈希并将其存储到 MySQL 数据库中。我已经阅读了很多关于在数据库中存储盐的内容,但有几个原因我选择不在这里。似乎没有办法从黑客那里完全隐藏每个用户特定的随机盐,也没有办法隐藏我有一个托管数据库和可下载软件。因为这个软件只在内部使用,它最多有 20 个用户,Hacker更容易偶然发现数据库端口而不是软件。至少通过在软件中生成盐而不是将其存储在数据库中,他需要找到软件来反编译并确定盐/哈希方法。
这是我正在使用的方法:
编辑: 把这个放在这里
我看到我需要生成一个随机盐,我现在可以存储它。
php - 在 php 中安全地显示密码
我想为我工作的公司创建一个安全的密码存储库。用户可以在其中存储各种系统的用户名和密码的系统。他们所要做的就是登录到这个系统一次,然后就可以在表格中查看他们的用户名和密码。
我知道要验证用户登录,我应该使用质量哈希和随机盐。但是,一旦用户登录到我的系统,我希望他们能够看到他们输入到该系统中的站点/系统的用户名和密码。到目前为止,我对存储密码的所有研究都要求用户输入正确的密码,该密码将根据哈希和盐检查它,要么通过,要么失败。到目前为止,我还没有看到一种方法来存储和检索密码,而无需实际将正确的密码传递到散列中。
有没有办法安全地显示用户名和密码列表?任何已经设计用于执行此类操作的示例代码或库将不胜感激。
android - SmartLock 无需询问即可保存 Facebook 凭据
当应用程序通过 Facebook 成功登录时,它开始保存凭据。这应该询问用户是否要使用 SmartLock 保存它,但它会自动保存。
在保存回调中,我获得了成功,但没有解决方案。它不应该是成功的,它应该包含一个允许提示用户保存的解决方案。
有什么原因,或者有什么方法可以得到我想要的功能吗?
-谢谢
mysql - MySQL 区分大小写(或其他方式,如何在 MySQL 中正确存储密码)
原因:
我有一张桌子,列都适合Collated
,utf8mb4_unicode_ci
...包括存储密码哈希(从 生成password_hash
)的列,例如$2y$14$tFpExwd2TXm43Bd20P4nkMbL1XKxwF.VCpL.FXeVRaUO3FFxGJ4Di
.
但是,我发现由于该列不区分大小写,散列$2y$14$tFpExwd2tXm43Bd20P4NKmbL1XKxwF.VCpL.FxEVRaUO3FFxGJ4DI
仍然允许访问。
这意味着以不区分大小写的方式存储数据可能会发生数百次冲突。不好。
问题:
现在,在进行比较时,是否有办法强制 MySQL 将pass_word
列视为区分大小写的列。我想避免编辑每次出现的 PHP/SQL 查询,而是简单地将数据库表列设置为默认情况下以区分大小写的方式进行比较。
utf8mb4
字符集没有给我任何_cs
选项,唯一的非选项_ci
似乎是utf8mb4_bin
.
这么简单的问题:
MySQL 上的字符集和排序规则是否[是的]UTF8mb4_bin
区分大小写?- 服
UTF8mb4_bin
我想做的事。我应该使用另一组吗?如果是,为什么? password_hash
将输出存储在 MySQLutf8mb4_bin
列中是否有任何问题?- 这种方法是否方便地回避了编辑每个登录查询的查询 SQL 的需要?我可以更改列类型然后继续吗?
编辑
正如 nj_ 所详述的,这是一个愚蠢的问题,根本不是问题,因为
pass_word
登录时永远不会直接编辑 的值。......这是漫长的一天。
python - 加密和解密密码会引发 ValueError
我正在制作一个应该加密您传入的密码的程序。但是,每当我运行它时,它都会引发错误:
ValueError: could not convert string to float: 'Banana' (我为这个测试选择的词)
这是我的代码:
python - 为什么我需要在 Python 中散列之前声明编码,我该怎么做?
我正在尝试创建一个类似 AI 的聊天机器人,它的功能之一是登录。我以前使用过登录代码,它工作正常,但我现在在处理密码散列的代码时遇到了困难。这是代码:
这是我得到的结果:
我查找了我认为应该使用的编码 (latin-1) 并找到了所需的语法,将其添加进去,我仍然收到相同的结果。
c# - C# 使用服务将密码加载到 Process 方法中的最安全方法
我有一个 C# 服务需要以另一个用户身份运行一个进程(交互模式)。该用户是管理员级别的用户,我知道我不应该将密码作为字符串存储在代码中。
我可以使用一些帮助将我指向正确的方向,因为我所做的所有研究似乎都指向了大量似乎并不适合我想做的方法。
我是否需要将散列密码存储在配置文件中?我可以在代码中存储一个散列密码,然后有人将它传递给一个安全的字符串吗?我在这里感到有点迷茫,可以使用一些指导。
security - 如何防止用户通过更新其他用户的密码来模仿其他用户?
我有一个在本地运行的应用程序,要访问该应用程序,用户必须使用用户名和密码登录。在登录时,提供的密码被散列并与现有的散列密码进行比较。
该应用程序使用数据库并将用户凭据存储在用户表中。users 表具有存储用户 id、用户名和用户的单向哈希密码的列。
应用程序在用户创建或用户更改密码时对用户密码进行哈希处理。散列为具有相同密码的两个用户返回不同的散列。哈希密码与用于哈希密码的迭代次数(随机生成)一起存储在表中。示例:2CF7C.ABLK/hrjy...zCOI5A=
我发现的一个弱点是,如果数据库被现有用户破坏,该用户可以使用自己的密码更新另一个用户的密码。然后,恶意用户可以使用受感染用户的凭据来访问应用程序。
为了缓解这个弱点,我打算对用户 ID、用户名或两者进行哈希处理,并将它们与密码一起存储。登录时,会检查散列的用户 ID 和密码,如果它们不匹配,则登录失败。
有没有更好的方法来处理这个弱点?