首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sha512散列整个列

使用sha512散列整个列
EN

Stack Overflow用户
提问于 2012-09-27 08:11:44
回答 2查看 14.2K关注 0票数 6

我有一个包含三列的表:问题、答案、哈希。我想用使用sha512散列的Answer列来更新散列。

我尝试使用以下语法直接从我的MySql数据库进行更新,但不起作用:

UPDATE TableName SET Hashed =SHA512(答案) WHERE Hashed为NULL

我知道语法是错误的,但不确定为什么。

提前感谢您的帮助!

R

EN

回答 2

Stack Overflow用户

发布于 2012-09-27 08:14:59

试试看。

代码语言:javascript
复制
UPDATE TableName SET Hashed=SHA2(Answer, 512) WHERE Hashed IS NULL;

请注意,这仅适用于MySQL 5.5及更高版本。对于5.5之前的版本,您必须使用应用程序代码对其进行散列(PHP以获取所有行,迭代并将$row‘SHA512’散列到答案,然后对每个行运行更新命令)(来源:http://dev.mysql.com/doc/refman/5.5/en//encryption-functions.html#function_sha2)

票数 13
EN

Stack Overflow用户

发布于 2016-08-24 19:16:15

我希望这还不算太晚。即使,也许其他人会发现这个提示:

代码语言:javascript
复制
UPDATE TableName SET Hashed = ENCRYPT('Answer', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))) WHERE Hashed IS NULL;

它的作用是创建sha-512散列,使用它的schema:$6$字符串'Answer‘

如果您正在使用debian,您也可以使用libstring-mkpasswd-perl包中的mkpasswd为您生成SHA-512,并将其更新为字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12612279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档