站长网 MySql教程 mysql – 在phpMyAdmin中哈希

mysql – 在phpMyAdmin中哈希

我有一个mySQL数据库,我正在使用phpMyAdmin来访问它.数据库具有表员工,其中包含姓名,地址,电子邮件和密码等字段. 最初,密码字段只是VARCHAR(20).但现在我想用SHA-256哈希技术哈希我的密码. 我对数据库没有太多经验,所以我想知道的是 我可以在不影响其他字

我有一个mySQL数据库,我正在使用phpMyAdmin来访问它.数据库具有表员工,其中包含姓名,地址,电子邮件和密码等字段.

最初,密码字段只是VARCHAR(20).但现在我想用SHA-256哈希技术哈希我的密码.

我对数据库没有太多经验,所以我想知道的是 –

>我可以在不影响其他字段或整个表格的情况下散列所有当前员工的密码吗?
>将来当我在数据库中输入数据时(来自Web应用程序),我在哪里编写散列函数来散列密码?即,是否在前端发生散列,然后散列密码存储在DB中,或者密码进入散列然后存储的DB.

解决方案和建议表示赞赏.
最佳答案
问题1:我可以在不影响其他字段或整个表的情况下散列所有当前员工的密码吗?

答:是的.但是您需要将密码列的大小改为40-42.您将使用PASSWORD()内置函数来加密您的密码

ALTER TABLE tableName MODIFY `password` VARCHAR(42); 

之后,您现在可以更新密码列

UPDATE tablename
SET     `password` = PASSWORD(`password`);

前).

abcde12345 => *20B30AFAF441808B50273EDA287132EC25B02DE2

Q2:将来当我在数据库中输入数据时(来自Web应用程序),我在哪里编写散列函数来散列密码?

答:在您的INSERT查询中

INSERT INTO tableName (name,address,email,password) 
VALUES ('aa','bb',''cc,PASSWORD('abcde12345'))

当您要搜索密码时,首先加密文本:

SELECT *
FROM   tableName
WHERE `password` = PASSWORD('abcde12345')

还有一件事,不要忘记使用反引号来转义密码列,因为它是MySQL Reserved Word.

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/mysql/2021/0523/4948.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部