更新具有相同数据散列的列
Posted
技术标签:
【中文标题】更新具有相同数据散列的列【英文标题】:Update column with same data hashed 【发布时间】:2014-11-02 07:45:15 【问题描述】:我需要更新用户表中存储纯文本密码的列。它们需要进行哈希处理,我不希望用户注意到这种变化。
$users = SELECT * FROM user
foreach ($users as $user):
UPDATE user SET password = 'new value'
endforeach;
但是,如何在更新之前传入所有纯文本密码并对其进行哈希处理。
【问题讨论】:
【参考方案1】:SQLUPDATE
语句可以读取表列的旧值并在赋值中使用。
UPDATE user
SET password = HASH_FUNCTION(password);
将HASH_FUNCTION
替换为您要使用的特定功能。
【讨论】:
感谢您的回复。我正在尝试使用双盐进行 sha1 哈希: sha1($password . SALT) 。盐)。我似乎想不出在查询中实现这个 php 函数的方法。 您的问题从未提及 PHP。它只标记了mysql
,所以我认为你想要一个 SQL 解决方案。
SQL 查询也可以,对吗? SHA1() 也是一个 MySQL 函数。但由于某种原因,我无法做到这一点。
如果这是出于实际的安全目的,那么 sha1 散列只是一个创可贴。
我没有指定使用哪个哈希函数。以上是关于更新具有相同数据散列的列的主要内容,如果未能解决你的问题,请参考以下文章
在具有循环或 lambda 的多个数据帧中添加具有相同字符串值的列的更有效方法?