加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 在phpMyAdmin中哈希

发布时间:2021-05-24 04:36:13 所属栏目:MySql教程 来源:网络整理
导读:我有一个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.

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!