Q1:我可以在不影响其他字段或整个表的情况下散列所有当前员工的密码吗?
答:是的。但是您需要将密码列的大小更改为 40-42。您将使用PASSWORD( )
内置函数来加密您的密码
ALTER TABLE tableName MODIFY `password` VARCHAR(42);
之后,您现在可以更新密码列
UPDATE tablename
SET `password` = PASSWORD(`password`);
前任。)
abcde12345 => *20B30AFAF441808B50273EDA287132EC25B02DE2
Q2:将来当我在数据库中输入数据时(从网络应用程序),我在哪里编写散列函数来散列密码?
答:在你的INSERT query
INSERT INTO tableName (name, address, email, password)
VALUES ('aa','bb',''cc,PASSWORD('abcde12345'))
当您要搜索密码时,请先加密文本:
SELECT *
FROM tableName
WHERE `password` = PASSWORD('abcde12345')
还有一件事,不要忘记将您的Password
列转义,backtick
因为它是MySQL 保留字。