PhpMyAdmin、MySQL

问题描述 投票:0回答:1

是否可以解密varchar(191)?

当我从 PhpMyAdmin 访问 MySql 并想要从那里更改用户密码时,它会在密码旁边显示 varchar(191) ,并且它是用某些类型的加密编写的,例如 $2y$10$cp1BPpWTBq8kMWvyOxXjduOPhT68YHEYfj37zDLOLLY10oimc5dQG

请有人给我一段以 varchar(191) 为例的文本吗?

mysql database phpmyadmin
1个回答
0
投票

在 MySQL 中,当您看到存储为 varchar(191) 的密码且如下所示:“$2y$10$cp1BPpWTBq8kMWvyOxXjduOPhT68YHEYfj37zDLOLLY10oimc5dQG”时,该密码很可能已使用 bcrypt 算法进行了哈希处理和加盐处理。这是在数据库中安全存储密码的常见做法。

您无法直接解密 bcrypt 哈希来检索原始密码。相反,您通常会将用户的输入(例如,当他们登录时)与存储的 bcrypt 哈希进行比较,方法是使用相同的算法对用户的输入进行哈希处理,并将生成的哈希值与数据库中存储的哈希值进行比较。如果匹配,则提供的密码正确。

以下是如何使用 PHP 和 password_verify() 函数验证密码的示例:

// The stored hash in the database
$storedHash = "$2y$10$cp1BPpWTBq8kMWvyOxXjduOPhT68YHEYfj37zDLOLLY10oimc5dQG";

// User's input password
$userPassword = "user_input_password";

// Verify the password
if (password_verify($userPassword, $storedHash)) {
    echo "Password is correct!";
} else {
    echo "Password is incorrect!";
}

此代码将验证用户提供的密码是否与存储的 bcrypt 哈希相匹配。如果它们匹配,则意味着用户提供了正确的密码。

需要注意的是,bcrypt 哈希是单向函数,这意味着它们无法逆转以泄露原始密码。这是一项安全功能,即使数据库遭到破坏,也有助于保护用户密码。

© www.soinside.com 2019 - 2024. All rights reserved.