标签: saltedhash

什么是彩虹攻击?

我正在阅读一些关于盐和密码哈希的文章,还有一些人提到彩虹攻击.什么是彩虹攻击以及防止它的最佳方法是什么?

cryptography saltedhash rainbowattack

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

使用盐在SHA512中哈希? - Python

我一直在查看hashlib文档但是在散列数据时没有找到任何关于使用salt的内容.

帮助会很棒.

python salt sha saltedhash hashlib

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

15
推荐指数
3
解决办法
2万
查看次数

散列时"盐"的目的是什么?

好的,我想了解使用盐的原因.

当用户注册时,我为他/她生成一个我存储在DB中的唯一盐.然后我用SHA1散列它和密码.当他/她登录时我会重新哈希sha1($salt.$password).

但如果有人攻击我的数据库,他可以看到哈希密码和盐.

是否更难破解而不仅仅是用盐哈希密码?我不明白......

对不起,如果我是傻瓜......

hash saltedhash

11
推荐指数
1
解决办法
2923
查看次数

为什么compareSync不需要盐串?

我正在尝试使用bcryptjs生成用户密码的哈希值.但是我在一件事情上有点困惑.

按照惯例,根据这一条款,我们需要:

  • 保持我们的密码哈希值相对较长且独特,
  • 使用此盐对用户密码进行哈希处理
  • 存储盐渍哈希密码和盐

因此,当我们在验证用户时比较哈希时,我们将存储的盐附加到用户输入的密码,并将其与来自数据库的哈希进行比较.

然而,使用hashSync和compareSync bcryptjs如下:

//hashSync to generate hash
var bcrypt = require('bcryptjs');
var password = "abc";
var hash = bcrypt.hashSync( <some string>, < integer length of salt>) // the salt of mentioned length(4-31) is self-generated which is random and fairly unique

//compareSYnc to compare hash
var testString="abc";
console.log(bcrypt.compareSync(testString, hash)) // compares with previously generated hash returns "true" in this case.
Run Code Online (Sandbox Code Playgroud)

我感到困惑的是,如果我们在验证时不需要盐,那么产生它的意义何在?compareSync返回时true无需访问salt.所以它不会让相对较小的密码容易遭受暴力攻击吗?无论盐的大小如何,以下所有内容都返回true:

console.log(bcrypt.compareSync("abc", bcrypt.hashSync("abc"))); // consoles true. by default, if …
Run Code Online (Sandbox Code Playgroud)

hash salt bcrypt saltedhash node.js

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

使用密码盐的Pure-ftpd和Postgreql Auth

我最近开始设置PureFTP服务器的任务.在工作中我们使用Postgresql 8.4.架构基本上归结为,

username        text
password        character(40)
password_salt   text
Run Code Online (Sandbox Code Playgroud)

password存储为哈希sha1( password + salt ).使用Postgresql的pgcrypto我可以提供一个username,password并找出用户是否有auth:

SELECT
 encode( digest( $password ||password_salt, 'sha1' ), 'hex' ) = password
   AS password_correct
 , username
 , password
 , password_salt
FROM contact.person;
Run Code Online (Sandbox Code Playgroud)

现在我遇到的问题是这样的功能需要我将密码输入查询.Pureftp目前的auth-postgresql实现似乎不太可行.它仅支持提供:

\L is replaced by the login of a user trying to authenticate.
\I is replaced by the IP address the client connected to.
\P is replaced by the port number the client connected to.
\R is replaced …
Run Code Online (Sandbox Code Playgroud)

postgresql salt saltedhash pureftpd

5
推荐指数
1
解决办法
1284
查看次数

我是否需要Salt和Hash随机生成的令牌?

我正在使用Adam Griffiths的CodeIgniter身份验证库,我正在调整用户模型.

我遇到了他用来生成令牌的生成函数.

他首选的方法是引用random.org的值,但我认为这是多余的.我正在使用他的后退方法随机生成一个20个字符长的字符串:

$length = 20;
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$token = '';    
for ($i = 0; $i < $length; $i++) {
 $token .= $characters[mt_rand(0, strlen($characters)-1)];
}
Run Code Online (Sandbox Code Playgroud)

然后他使用盐哈希这个令牌(我正在梳理来自不同功能的代码)

sha1($this->CI->config->item('encryption_key').$str);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何理由通过盐渍哈希运行令牌?

我已经读过,只是随机生成字符串是一种天真的方式来制作随机密码但是sh1哈希和盐是必要的吗?

注意:我从https://www.grc.com/passwords.htm获取了我的encryption_key (63随机字母数字)

saltedhash

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

试图了解Ruby on Rails中的salting和散列密码

我正在浏览Michael Hartl的书(真棒,免费资源,顺便说一下,谢谢迈克尔!)我有一个关于盐渍和哈希密码的问题.腌制密码的目的是防止黑客进行彩虹攻击,如果我理解正确的话,如果黑客可以猜测所使用的加密类型,那么基本上就是暴力攻击.为了防止这种攻击,使用salt在密码加密之前随机化密码,但该密码必须与加密密码一起存储?如果是这样,那么如果黑客可以访问数据库并检索加密密码,那么他们是否也无法检索盐并继续进行彩虹攻击?

这是Michael的代码示例...

>> Time.now.utc
=> Fri Jan 29 18:11:27 UTC 2010
>> password = "secret"
=> "secret"
>> salt = secure_hash("#{Time.now.utc}--#{password}")
=> "d1a3eb8c9aab32ec19cfda810d2ab351873b5dca4e16e7f57b3c1932113314c8"
>> encrypted_password = secure_hash("#{salt}--#{password}")
=> "69a98a49b7fd103058639be84fb88c19c998c8ad3639cfc5deb458018561c847"
Run Code Online (Sandbox Code Playgroud)

非常感谢!

encryption ruby-on-rails saltedhash

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

如何设计系统以允许迁移加密?

我想建立一个允许将加密密码(哈希密码)从一个系统迁移到另一个系统的系统.我该怎么办?

说2个月后,我发现加密速度提高了10倍,目前的哈希函数已经被证明毫无疑问,完全是脆弱的.我将如何将用户密码从一种类型的哈希迁移到另一种哈希(更好的一种).

migration encryption passwords hash saltedhash

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

Unix SALT 如何帮助保护密码?

前几天我在课堂上,我们正在谈论 Unix SALT 以及它如何使密码更难猜测。我的问题是 SALT 以明文形式存储在散列密码旁边,那么如何使其更安全?我的意思是如果 SALT 就在那里,那么你附加它然后散列你的猜测。此外,关于在彩虹表中预先计算猜测的问题对我来说也没有意义。您只需查看 SALT 并首先使用给定的 SALT 预先计算它。我能想到的唯一论点是恶意用户无法访问 /etc/password 文件,但黑客如何知道密码的哈希值。如果有人能指出我正确的方向,我将不胜感激。谢谢!

unix salt saltedhash

3
推荐指数
1
解决办法
2423
查看次数