标签: password-protection

如何在PHP中使用bcrypt进行散列密码?

我不时听到"使用bcrypt在PHP中存储密码,bcrypt规则"的建议.

但是什么bcrypt呢?PHP没有提供任何此类功能,维基百科关于文件加密实用程序的唠叨和Web搜索只是揭示了不同语言的Blowfish的一些实现.现在Blowfish也可以通过PHP获得mcrypt,但是如何帮助存储密码?Blowfish是一种通用密码,它有两种工作方式.如果它可以加密,则可以解密.密码需要单向散列函数.

解释是什么?

php passwords cryptography password-protection bcrypt

1230
推荐指数
9
解决办法
38万
查看次数

通过PHP进行HTTP身份验证注销

注销HTTP身份验证保护文件夹的正确方法是什么?

有一些解决方法可以实现这一点,但它们具有潜在的危险性,因为它们可能是错误的,或者在某些情况/浏览器中不起作用.这就是为什么我正在寻找正确和干净的解决方案.

php authentication .htaccess password-protection http-headers

149
推荐指数
8
解决办法
11万
查看次数

SQLite具有加密/密码保护

我只是学习使用SQLite,如果可能的话,我很好奇:

  1. 加密数据库文件?

  2. 密码保护数据库的开放?

PS.我知道有这个"SQLite加密扩展(SEE).",但根据文档,"SEE是许可软件...."和"SEE的永久源代码许可证的成本是2000美元."

sqlite encryption password-protection

122
推荐指数
4
解决办法
21万
查看次数

PHP和MySQL - 如何避免源代码中的密码?

我有一个小型PHP应用程序,用于在MySQL数据库中存储数据.目前,用户名/密码在PHP代码中是硬编码的.例如,我不喜欢这种情况,因为代码也可以在存储库中使用.

我最好的想法是将数据从代码移动到配置文件(从存储库中排除),并以某种方式对其进行编码,因此不能直接读取(混淆).有没有更好易用的方法来解决这个问题?

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) { 
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
Run Code Online (Sandbox Code Playgroud)

范围:我想建立一个强大但易于使用的解决方案.我想要合理的安全性,但我不是在处理高度机密的数据.

备注:不再推荐使用这些mysql_connect函数,请参阅Stack Overflow问题为什么我不应该在PHP中使用mysql_函数?*.我本可以更改代码示例,但由于一些注释引用了这个,我没有.但是,问题的原始性质仍然有效.

php mysql password-protection

111
推荐指数
4
解决办法
1万
查看次数

Eclipse安全存储

是否可以完全禁用Eclipse的安全存储密码?我在Windows 7上运行Eclipse Helios.

eclipse password-protection

106
推荐指数
2
解决办法
7万
查看次数

如何从子目录中删除.htaccess密码保护

我有密码保护我的整个网站使用,.htaccess但我想公开其中一个子目录,以便无需密码即可查看.

如何禁用子目录的htaccess密码保护?具体是什么.htaccess语法.

这是我的.htaccess文件放在我的ftp的根目录中.

AuthName "Site Administratrion"
AuthUserFile /dir/.htpasswd
AuthGroupFile /dev/null

AuthName secure
AuthType Basic
require user username1
order allow,deny
allow from all

.htaccess password-protection subdirectory

92
推荐指数
3
解决办法
8万
查看次数

用于密码哈希的非随机盐

更新:我最近从这个问题中了解到,在下面的整个讨论中,我(我确信其他人也这样做)有点令人困惑:我一直称之为彩虹表,实际上称为哈希表.彩虹桌是更复杂的生物,实际上是Hellman Hash Chains的变种.虽然我认为答案仍然是相同的(因为它不归结为密码分析),但有些讨论可能有点偏差.
问题是:" 什么是彩虹表,它们是如何使用的? "


通常,我总是建议使用加密强随机值作为salt,与哈希函数(例如密码)一起使用,例如防止彩虹表攻击.

但实际上盐是随机的加密必需吗?在这方面,任何唯一值(每个用户唯一,例如userId)是否足够?实际上,它会阻止使用单个Rainbow Table来破解系统中的所有(或大多数)密码......
但是缺少熵真的会削弱散列函数的加密强度吗?


注意,我不是在问为什么要使用salt,如何保护它(它不需要),使用单个常量哈希(不要),或者使用什么样的哈希函数.
无论盐是否需要熵.


感谢所有答案到目前为止,但我想集中讨论我(有点)不太熟悉的领域.主要是对密码分析的影响 - 如果有人从密码数学PoV获得一些输入,我会非常感激.
此外,如果还有其他未被考虑的向量,那也是很好的输入(参见@Dave Sherohman指向多个系统).
除此之外,如果您有任何理论,想法或最佳实践 - 请使用证据,攻击情景或经验证据来支持这一点.或者甚至是可接受的权衡的有效考虑因素......我对该主题的最佳实践(资本B资本P)很熟悉,我想证明这实际上提供了什么价值.


编辑:这里有一些非常好的答案,但我认为正如@Dave所说,它归结为Rainbow Tables的常见用户名......以及可能不太常见的名称.但是,如果我的用户名是全局唯一的呢?不一定是我的系统唯一,但每个用户 - 例如电子邮件地址.
没有动力为单个用户构建RT(正如@Dave强调的那样,盐不会保密),这仍然会阻止群集.唯一的问题是我可能在不同的网站上有相同的电子邮件和密码 - 但盐无论如何都不会阻止它.
因此,它回归到密码分析 - 是否需要熵?(我目前的想法是从密码分析的角度来看没有必要,但这是出于其他实际原因.)

security authentication hash cryptography password-protection

88
推荐指数
4
解决办法
3万
查看次数

HTTPS上的纯文本密码

我目前正在开发一个可以通过HTTPS工作的PHP OpenID提供程序(因此是SSL加密的).以纯文本形式传输密码
不对的?理论上HTTPS,不能被截获,所以我没有看到任何错误.或者这在某种程度上是不安全的,我没有看到这个?

https password-protection

84
推荐指数
7
解决办法
4万
查看次数

在Java中,使用char[]而不是String来存储密码还有意义吗?

char[]早在Usenet时代就学会了如何使用comp.lang.java.*.

搜索 Stack Overflow,你还可以轻松找到像这样高票数的问题: Why is char[] Preferred over String for passwords? 这与我很久很久以前学到的一致。

我仍然编写 API 以用于char[]密码。但现在这只是空洞的理想吗?

例如,查看Atlassian Jira的 Java API: LoginManager.authenticate,它将您的密码作为字符串。

或者Thales的 Luna Java API: LunaSlotManager 中的 login() 方法。其中,HSM供应商使用StringHSM 插槽密码。

我想我还在某处读到 URLConnection (和许多其他类)的内部结构String在内部使用来处理数据。因此,如果您发送密码(尽管密码通过网络通过TLS加密),它将以字符串形式保存在服务器内存中。

访问服务器内存是否是一个很难实现的攻击因素,以至于可以像String现在一样存储密码?或者泰勒斯这样做是因为你的密码最终会String由于其他人编写的类而最终被泄露?

java password-protection

72
推荐指数
5
解决办法
6206
查看次数

如何在没有HTTPS的情况下使用Javascript通过HTTP安全地发送密码?

所有开发人员都面临的一个非常基本的问题:每当用户提交表单时,密码都会通过网络发送,并且必须受到保护.我开发的网站没有HTTPS.所有者既不想购买SSL证书,也不想对自签名证书感兴趣.所以我想在提交表单时使用Javascript保护通过HTTP发送的密码.

渴望downvoters:如何通过HTTP安全地发送密码?不提供任何合理的解决方案,我处于另一种情况.

如果我使用MD5,可以反转该密码字符串.那怎么样的nonce/HMAC?任何可用的Javascript库吗?或者你有什么建议/提示要解决?提前致谢!

security hash http password-protection hmac

58
推荐指数
4
解决办法
5万
查看次数