相关疑难解决方法(0)

对于PHP 5.3,建议使用哪种bcrypt实现?

好的,我终于理解了bcrypt,它是如何工作的,以及如何将它存储在数据库中,所以我几乎要好好去.现在的问题是选择使用哪种bcrypt实现与PHP 5.3.

我疯狂地看着所有不同的解决方案,我不确定哪一个是最推荐和最安全的,所以我再次转向你们.

以下是我发现的:

1)https://gist.github.com/marcoarment/1053158

2)http://www.openwall.com/phpass/

3)/sf/answers/443591501/

4)......别的什么?

这些可以互换,还是产生不同的哈希?我想认为,既然它们都是"bcrypt",他们会产生相同的结果,但我不知道(我测试1)2)以上,他们似乎是可互换的,因为所生产的散列1)上确认2)).

那么PHP的推荐解决方案是5.3什么?

php passwords hash bcrypt password-encryption

8
推荐指数
1
解决办法
5107
查看次数

PHP和MYSQL:使用bcrypt哈希并使用数据库验证密码

我正在使用Andrew Moore先生的方法(如何使用bcrypt在PHP中使用哈希密码?)哈希用户的密码.我做的是我有一个注册页面,它使用

$bcrypt = new Bcrypt(12);
$pass = $_POST['password']; //register password field
$hash= $bcrypt->hash($pass);

// then inserts $hash into database with users registered email (I've checked my mysql database and it indeed has an hashed item
Run Code Online (Sandbox Code Playgroud)

然后我有一个登录页面,包括电子邮件和密码字段.我的想法是电子邮件地址在我的数据库中是唯一的.因此,考虑到这一点,我创建了一个脚本,首先检查用户的电子邮件地址,然后如果有现有的,请用此验证哈希密码

$bcrypt = new Bcrypt(12);

$email = $_POST['email']; //from login email field
$pass_l = $_POST['password']; // from login password field
$hash_1= $bcrypt->hash($pass_1);

$chk_email= $dbh->prepare("SELECT password FROM table WHERE email = ?");
$chk_email -> execute(array($email));

while($row = $chk_email->fetch(PDO::FETCH_ASSOC)){
    $chk_pass = $row['password']; //inside a …
Run Code Online (Sandbox Code Playgroud)

php mysql passwords hash bcrypt

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

散列"记住我"cookie令牌的最佳方法

我正在尝试按照此处提供的指南实现" 记住我 "功能:基于表单的网站身份验证的权威指南,此处:http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/

看来,"cookie令牌"应该在存储在数据库中时进行哈希处理(如果攻击者可以访问数据库,则未使用的令牌看起来像普通的登录/密码,允许登录网站).

寻找一个好的哈希算法,我发现这个推荐的技术使用bcrypt:https://stackoverflow.com/a/6337021/488666

我已经尝试过,发现随着建议的轮数(15)导致处理时间非常慢(在2,3或者英特尔2核E500 + 4 GB RAM上验证2,3s)

我知道哈希算法应该相对缓慢阻碍攻击者,但在这个层面上,它阻碍了用户使用网站:)

你认为减少轮数(例如7,将处理时间减少到10ms + 10ms)就足够了吗?

php cookies hash bcrypt remember-me

6
推荐指数
1
解决办法
8343
查看次数

如何在PHP中生成密码,就像Ruby on Rails中的Devise Gem一样

我正在将Ruby on Rails的网站更新为PHP.我需要生成由Ruby on Rails中的Devise Gem生成的密码.我必须知道使用PHP创建相同方法的密码的哈希方法是什么.但是作为初学者,在Ruby on Rails中找到代码并不容易.如果有人知道我应该在哪里找到它,请帮助我.

这两个都是我发现的:

1) The configuration of encryptor is disabled in devise.rb like below:
  # config.encryptor = :sha1
2) I read the comments very carefully then I found that they using sha512 and bcrypt as default encryptor.
  # (default), :sha512 and :bcrypt. Devise also supports encryptors from others
Run Code Online (Sandbox Code Playgroud)

我尝试用PHP以不同的方式创建相同的加密密码:

1) sha1('--'.$password_salt.'--'.$encrypted_password);
2) sha1($password_salt.'-----'.$encrypted_password);
3) sha1('--'.$password_salt.'--'.$encrypted_password.'--');
4) sha1($password_salt.$encrypted_password);
5) sha1($encrypted_password.$password_salt);
6) substr(hash('sha512', $password_salt.$encrypted_password, false), 20);
7) substr(hash('sha512', $encrypted_password.$password_salt, false), 0, 40);
8) hash('sha512', $encrypted_password.$password_salt, false); …
Run Code Online (Sandbox Code Playgroud)

php encryption ruby-on-rails devise

6
推荐指数
1
解决办法
2297
查看次数

为什么md5仍然被广泛使用

首先,我应该说我对编程比较陌生,所以如果这是一个天真或愚蠢的问题,请对我温柔.

好的,所以我正在编写一个小应用程序,其中一部分将涉及散列用户密码.在研究了最佳方法之后,md5作为一种建议出现,几乎与批评其使用的文章中出现的次数相同.

替代品是SHA-1等,它们更强,更不容易被破解.这很有道理.

为了达到目的:

  1. 为什么md5仍然广泛用于散列
  2. 我是否应该自动为散列密码折扣md5,或者是否存在其使用实际上比其他散列机制更好的特定用例?

php security hash md5

6
推荐指数
1
解决办法
1817
查看次数

使用Blowfish进行PHP加密

我正在编写一个需要加密密码的注册表,我听说建议我使用Blowfish加密密码,如何使用PHP crypt()函数实现blowfish加密?另外,我打算稍后检索密码以便登录.

php security blowfish

6
推荐指数
1
解决办法
8497
查看次数

PHP/MySQL形式:转义,消毒,散列....我甚至从哪里开始?

我通常非常有资源自己寻找信息,但是当谈到这个问题时,那里的东西确实令人生畏.我收到了一些信息超载.

我已经找到了几十篇关于个人安全主题的文章,但我无法理解大局以及它们在实践中如何融合在一起.

我需要看一个鸟瞰路线图.拿这个假设的例子:

一个简单的假设"评论"部分:

  • 注册:创建一个密码/用户名组合,安全地存储在MySQL表中.

  • 登录.

  • 发表评论.

这个最基本的案例将遵循什么是"安全路线图"?

这个星球上的每本教程和PHP书都使用MySQL扩展没有帮助,如果我理解正确的话,这是一个坏主意吗?

php mysql security passwords sql-injection

6
推荐指数
1
解决办法
984
查看次数

在mysql数据库中存储密码的最佳方法?

可能重复:
如何最好地存储用户信息和用户登录名和密码
如何在PHP中使用bcrypt进行散列密码?

我习惯使用md5(),我知道它已经过时了,我听说sha1()也是不安全的.那么,考虑到安全性,这几天在数据库中存储和检索密码的最佳方法是什么?如果你能提供一个小例子,我会很高兴.

谢谢!

php mysql passwords

6
推荐指数
3
解决办法
5399
查看次数

PHP - MD5,SHA,Hashing安全性

我是一个用PHP构建的新网站的开发者,我想知道什么是最好用于散列的东西.我看过md5和sha1但有更安全的东西.
如果这是一个不起眼的问题,我很抱歉,但我是PHP安全新手,我正在努力使我的网站尽可能安全.什么是盐?
谢谢,
Waseem

php security hash md5 sha1

6
推荐指数
1
解决办法
8120
查看次数

哈希密码,从破碎方法到现在最安全

我脑子里只有一个简单的问题就是社区.曾几何时,当我开始编程时,我使用md5进行散列密码,后来发现md5很容易破解,我应该使用salt来保证其安全.

比我对md5没信任,想用sha1,sha256,sha512加密.但问题是现在我有加密形式的密码

md5("password"+"salt")
Run Code Online (Sandbox Code Playgroud)

那时我不知道用户的密码.所以我做了什么

sha1(md5("password"+"salt"))
Run Code Online (Sandbox Code Playgroud)

现在经过几次在这个领域,我发现sha1也不太安全,而且我应该怎么做才能使用bcrypt()来保证密码安全.

所以从现在起我将使用

 crypt(sha1(md5("password"+"salt")))
Run Code Online (Sandbox Code Playgroud)

密码现在非常安全,但主要问题仍然是它将用于创建哈希值的时间总是大于使用bcrypt("密码")

现在我要说的是假设bcrypt被黑客攻击并被发现被破坏,并且将来会出现更加安全的新加密功能.这样,从旧值创建密码总是很费时间.

什么可以解决这个问题.因为我知道邮件用户更改密码并不总是100%成功.另一件事是在数据库中添加一个存储新散列值的新字段,如果填充了所有字段,则从db中移除md5值.但是以这种方式事物仍然可以看到先前的散列值.

所以这件事情会发生,或者你们有一些解决方案.:)

php security passwords hash

6
推荐指数
2
解决办法
1188
查看次数