Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以将MD5转换为SHA256?_Php_Mysql_Database_Md5_Sha256 - Fatal编程技术网

Php 是否可以将MD5转换为SHA256?

Php 是否可以将MD5转换为SHA256?,php,mysql,database,md5,sha256,Php,Mysql,Database,Md5,Sha256,我有一个vBulletin数据库,有两个MD5'd密码和一个salt,是否可以在vBulletin数据库中获取密码,将其转换为SHA256,然后将其存储在新数据库中?有什么真正简单的方法可以做到这一点吗 我的主要原因也是唯一的原因,是防止用户创建新帐户,并停止使用MD5。哈希算法是单向的,即与加密解密算法不同,它们不能反转 MD5() 很高兴知道您已经停止使用MD5()并移动到SHA-256() 解决你的问题。 首先在users表中运行如下查询 UPDATE users_t SET PASSWO

我有一个vBulletin数据库,有两个MD5'd密码和一个salt,是否可以在vBulletin数据库中获取密码,将其转换为SHA256,然后将其存储在新数据库中?有什么真正简单的方法可以做到这一点吗

我的主要原因也是唯一的原因,是防止用户创建新帐户,并停止使用MD5。

哈希算法是单向的,即与加密解密算法不同,它们不能反转

MD5()

很高兴知道您已经停止使用
MD5()
并移动到
SHA-256()

解决你的问题。 首先在users表中运行如下查询

UPDATE users_t SET PASSWORD=SHA2(PASSWORD,256) WHERE 1=1
现在,您所有的
MD5
散列密码都将转换为
SHA256
散列密码

但是,您不能停止在登录/注册页面上使用MD5。。您必须更改您的检查逻辑,如

$pass = $_POST['password'];
$hashedpass = hash('sha256',md5($pass)); // Now you need to insert/verify

像MD5 SHA256等加密无法逆转现在唯一能做的就是要求用户更改密码,或者重置所有用户的密码并通过电子邮件发送给他们。在数据库中创建一个新密码列,在其中存储新哈希。用户登录后,使用他/她提供的原始密码使用sha256对其进行哈希运算。迟早,大多数活跃用户的密码都会用sha256散列。我不知道那些MySQL和PHP函数。您可能会考虑MySQL的函数和PHP的OR。您只做了密码MD5的一个Sa256。这并不比md5更安全。