我正在接受培训以确保登录过程的安全。
我在 sign_up.php 中使用了 sha 256:
$username= check_input($_POST['username']);
$password= check_input($_POST['password']);
//the password is encrypted in sha256
$secure_sign_up_password = hash('sha256', $password);
然后当然在我的 SQL 数据库中的用户表中,我可以阅读:
在“登录”列中实际键入的登录示例:如果有人键入“迈克尔”,我将在 SQL 数据库中看到“迈克尔”
在“密码”列中实际输入的登录示例:如果有人输入“水果”,我将在 SQL 数据库中看到像“e8bfab56c53980cd014206c8da2f8c9b9708eaacc61”这样的散列值
我的问题很简单,但可能有点天真(我是新手):我认为我仍然可以在我的数据库中的某处读取实际密码,并且哈希只是为了保护密码不被拦截和读取而它正在发送。我永远不知道,有人可能会要求我将他的真实密码发送给他。但我唯一能看到的是密码列中的“散列”。
- 是这样设计的吗?
- 是否也可以可视化真实密码?