English 中文(简体)
职能和保留密码
原标题:Hash Functions and Keeping Passwords Protected

我一直对不同形式的哈希姆和这样的话感到非常 wonder。 是的,我知道盐碱,并可能增加盐碱,但这没有任何盐碱。 我很可能使用一种动态的盐碱技术。

除了所有这一切之外,我还想知道,我所展示的内容是否合乎逻辑?

<?php

$data = "David";
$hash_crc32 = crc32($data);
$hash_md5 = md5($data);
$hash_sha1 = sha1($data);
echo  <br /><br />  .$hash_crc32.  <br /><br />  .$hash_md5.  <br /><br />  .$hash_sha1;

?>

Echo 产出如下:

1180170431

464e07afc9e46359fb480839150595

d27937f914ebe99ee315f04449678ecfb658191

$hash_crc32_md5 = $hash_md5 + $hash_crc32 + $hash_sha1 . $hash_md5 . $hash_crc32 . $hash_sha1;

<?php echo  <br /><br />  .$hash_crc32_md5; ?>

该产出:

5820170431464e07afc9e46359fb4808391505951180170431d27937f914ebe99ee315f04449678ecfb658191

那么,你会认为,用像这样的口号来 kill死吗? 我是否应该坚持一种盐 of的形式? 我知道,我不能首先想像这一点,因为似乎确实显而易见。

同样,你认为,跨越这种形式的冲撞等,会更加困难?

感谢任何反应!

最佳回答

是否高技能? 我可以就此发表意见。 页: 1

原因是,你通过提供多种洗.算法的结果,重新向未来的黑客提供more的信息。

在这些洗衣方法中使用的algorith上没有任何秘密。 删除了信息,因为虽然信息可以逆转,但可以产生相同的印章的案文有large。

然而,在提供多种散列产出时,你有效地消除了其中的许多可能性,例如,能够生产某种特殊计量吸入器的份数是 浸.的<> > /em> 和生产某种特殊热能的份数。

Think in terms of the MD5 hash you have. Maybe there are a trillion different texts that can produce that value. That s an awfully large search space.

现在考虑一下SHAx。 也可能有几万种不同的文本可以产生。 还有一个大型搜索空间。

但是,如果这两个搜索空间的intersection是42种不同的文本,那就不了很久。

密码不是用于心脏的int,也不是用于那些在实地有医生的人。

问题回答

过时密码的意思是,你仍然能够核实对其不利的密码,把一则直截了当的密码与你第一次打上一样,然后将其与所储存的散页相比较,而不能将 ha升的价值变成其平原。 从这个意义上讲,你重新做的事情并没有偏离这一目的。

洗衣的弱点大体是双重的:如果穿过所有可能的密码、洗 them这些口号并与所储存的散射器相比较相对而言,也许有可能用上 has。 从这个意义上来说,你的技术增加了一个很小的安全范围,因为你的三重 has花比仅仅一个平原的洗刷要花一点更长的时间,因此袭击者需要更多的时间来尝试各种组合。 然而,这并不真正重要。 实现这一目标的更好办法是使用较慢的散列算法和(或)简单地重复散列函数的一定次数(100-1000+倍)。

另一个弱点是雨桌,有些人已经忙于制作一张表格,绘制出所有可能的口号,以达到其shed价值。 你的技术给这里增加了一点点安全感,因为你的具体算法不可能在某个地方出现现有的雨水。 如果两个用户的口号相同,因为这两个词都对同一散列,那么攻击者就有两个字。 这对于每个用户独一无二的盐类非常重要,因为这意味着攻击者需要单独尝试每个用户的每个密码,而不是仅仅对所有用户使用一个密码。

因此,你重新做的工作并没有真正增加已经做得更好的东西,而最关键的仍然是缺乏独特的盐类。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...