【发布时间】:2014-02-20 13:06:44
【问题描述】:
我正在为在线酒店预订系统开发一个系统,我并不是从头开始的。系统中客户(预订者)的信息使用 MD5 加密,但与普通的 md5() php 函数不同,系统非常复杂,您可以在此处看到:
$psw = md5("vhdsxnjuobef");
$t_cred_num = md5_encrypt($t_cred_num, $psw, 16);
对于解密来说,它是这样的:
$psw = md5("vhdsxnjuobef");
$t_credit_num = md5_decrypt($t_cred_num, $psw, 16);
此代码在我的服务器上不起作用,并且有很多客户信息已加密。
t_cred_num 变量的哈希示例 =>
fdRucZHctr7vIX+U400xGHq53Qemze0YQH1sAUjvmaC1P+XaRadI9CaX0wrkDXu6
关于如何解密这些哈希的任何想法?当我将 md5_decrypt 与哈希一起使用时,没有任何反应。
【问题讨论】:
-
不要使用这些函数。他们以极其不安全的方式滥用 MD5。
-
对此功能的不安全性的全面分析不适合此评论框。可以这么说:它有许多严重的密码缺陷,使其大有待分析。使用由真正的密码学家设计的密码算法。
-
信用卡号码是非常敏感的信息,尽可能不要存储它们,看看这个question的答案。如果您确实需要存储它们,则必须遵守PCI standard。信用卡号的问题在于,它们很短且必须是可解密的,因此很难安全地存储它们。
标签: php encryption hash md5