【发布时间】:2011-07-11 05:46:44
【问题描述】:
您认为哪种方法最安全?我从 php.net 中删除了这些 sn-ps。我只是想知道,因为人们发布了他们自己的帖子,而我只是无法理解为什么有些人是这样的……有人可以帮助我并告诉我更多关于这些的信息吗?哪个最安全?为什么?
1.
<?php
$hash = md5($salt1.$password.$salt2);
?>
2.
<?php
function eliteEncrypt($string) {
// Create a salt
$salt = md5($string."%*4!#$;\.k~'(_@");
// Hash the string
$string = md5("$salt$string$salt");
return $string;
}
?>
3.
<?php
define ('SALT_ONE', 'some_random_123_collection_&$^%_of_stuff');
define ('SALT_TWO', 'another_random_%*!_collection_ANbu_of_stuff');
$password = 'dragon';
function generate_encrypted_password($str) {
$new_pword = '';
if( defined('SALT_ONE') ):
$new_pword .= md5(SALT_ONE);
endif;
$new_pword .= md5($str);
if( defined('SALT_TWO') ):
$new_pword .= md5(SALT_TWO);
endif;
return substr($new_pword, strlen($str), 40);
}
echo generate_encrypted_password($password);
?>
4.
<?
function enchsetenev($toencode,$times)
{
$salt = 's+(_a*';
for($zo=0;$zo<$times;$zo=$zo+1)
{
$toencode = hash('sha512',salt.$toencode);
$toencode = md5($toencode.$salt);
}
return $toencode;
}
?>
5.
<?php
$hash = $password . $salt;
for ( $i = 0; $i < 10000; $i++ ) {
$hash = md5( $hash );
}
echo $hash;
?>
【问题讨论】:
-
一切都是安全的,取决于你喜欢哪一个
-
for 循环怎么样,加密散列不是很糟糕吗?
-
就个人而言,我更喜欢我的 salt 对于每个用户帐户都是唯一的,而不是为每个帐户使用相同的 salt。
-
for ( $i = 0; $i