可以将MD5转换为SHA256吗?

Ari*_*ana 3 php mysql database md5 sha256

我有一个带有双MD5密码和盐的vBulletin数据库,是否可以在vBulletin数据库中获取密码,将它们转换为SHA256,然后将它们存储在新数据库中?有没有真正简单的方法来做到这一点?

我唯一的理由是阻止用户创建新帐户,并停止使用MD5.

Sha*_*ran 10

散列算法是单向的,即与加密 - 解密算法不同,它们无法逆转.

MD5() 是一种散列算法,也是 SHA-1 / SHA-256;

很高兴知道你已经停止使用MD5()并搬到了SHA-256()

解决您的问题.

首先在您的用户表中运行这样的查询

UPDATE users_t SET PASSWORD=SHA2(PASSWORD,256) WHERE 1=1
Run Code Online (Sandbox Code Playgroud)

现在,所有MD5Hashed密码都将转换为SHA256Hashes.

但是,您无法MD5在登录/注册页面上停止使用..您必须更改您的检查逻辑

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

  • 我不知道那些 MySQL 和 PHP 函数。您可能会考虑 MySQL 的 [SHA2()](https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_sha2) 函数和 PHP 的 [hash()](https://www .php.net/manual/en/function.hash.php) 或 [password_hash()](https://www.php.net/manual/en/function.password-hash.php)。 (2认同)