作者a60301 (mingtsay〃小喵)
看板PHP
标题Re: [请益] 明码常用加密组合方式
时间Mon May 20 21:06:38 2013
※ 引述《tas72732002 (葱头)》之铭言:
: 最近需要处理到使用有关明码打乱的功能,
: 想请问一下,一般会如何自订明码打乱方式来增加其安全性
: 之前是常用md5($password) 但发现如果只使用这样, 很容易被破解,
: 想请问各位大大 是否可提供一下常用的打乱方式,如合'组合'才会安全~
<?php
function new_salt
()
{
$chars = "abcdefghijklmnopqrstuvwxyz" . // 太长占版面所以分成两行
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$salt = "";
// 设定 salt 的长度为 16
for($i = 0; $i < 16; ++$i)
{
$salt .= $chars[mt_rand(0, strlen($chars) - 1)];
}
return $salt;
}
function string_to_hashed
($str, $salt = NULL)
{
if($salt == NULL) $salt = new_salt
();
$hashed = hash("sha256", $str.$salt); // 把要加密的资料加上 salt
return $salt.$hashed; // 记得也把 salt 传回来
}
function hashed_compare
($str, $hashed)
{
$salt = substr($hashed, 0, 16); // 取出 salt (注意长度要一致)
$str_hashed = string_to_hashed
($str, $salt);
return ($str_hashed == $hashed); // 比较是否为一样的内容
}
--
★∥ ○ ◢ 〞` ◣ ◥◣◢◣◢◣ ◢▏。 ○ ο ∣★
★| ° ◢ ╮ ██◤ █◤◥◤█ ∥ o ° ∥★
★∥ 。 ● ● ◤ ◥ █ █ ∥ ◢╱﹋◣ 。 ∣★
★∣ ◥ˍ ◤◤ ◢◤ ◢◢◤██◤ ◣ ◢╱ ● ︶ ( ∥★
★∥ ( ◢◤ ◤ing ∥say ◢███ ╰ ◤ ζ ) ∣★
★│ ) mt.rmstudio.tw ︾ [email protected] ◤ ◥◢ ◤◤ wnqui ∥★
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.157.72
1F:→ MOONRAKER:每次都用不同的salt! 05/20 21:17
2F:推 azurewings:推!! 非常精美!! 05/20 21:22
注 a60301:如有需要也可以把 $hashed = hash
("sha256", $str.$salt);
改成 $hashed = hash
("sha256", md5
($str) . $salt);
3F:推 jikotw74:推!! 05/20 22:27
4F:→ kovenkoven:strlen($chars)是否应该为strlen($chars)-1? 05/20 23:39
回 a60301:昨天写太快了没注意,感谢提醒! 05/21 08:02
5F:→ Wush978:我不是资安专业,但是我猜测这样做并没有比较安全耶 05/21 00:48
6F:→ Wush978:可能不同使用者有自己独特的salt就够了,每次不同的salt 05/21 00:49
7F:→ Wush978:,而且传输时又夹带salt,骇客仍然只需要针对该使用者制作 05/21 00:50
8F:→ Wush978:rainbow table即可。 05/21 00:50
10F:推 eight0:同楼上的疑问 salt不是不该被存进资料库吗? 05/21 01:04
回 a60301:基本上资料库照理来说应该要有措施,防止别人拿到hashed字串 05/21 08:07
否则任何的杂凑法也只是迟早被暴力破解出来而已
不然可以选用杂凑时间花费较久的杂凑演算法也是可以
11F:→ kovenkoven:salt不存起来,那该如何产生出一样的结果? 05/21 01:06
12F:→ MOONRAKER:可以放在资料库以外的地方,只要保证同一个明码必定用同 05/21 06:44
13F:→ MOONRAKER:一个salt就好了。较土就是大家共用一个salt。 05/21 06:46
※ 编辑: a60301 来自: 101.12.94.167 (05/21 08:09)
14F:→ kovenkoven:总之一切都要看系统被拿走的资料多到什麽地步 05/21 13:22
15F:推 fr373969:打这篇也太花时间了 05/22 11:07
※ 编辑: a60301 来自: 114.34.74.8 (05/22 11:55)