首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个转换的MYSQL SHA2 512

具有多个转换的MYSQL SHA2 512
EN

Stack Overflow用户
提问于 2020-01-21 14:58:00
回答 1查看 150关注 0票数 0

我必须计算SHA2 512校验和,但也需要“转换数”。我找不到任何答案。有人能帮我使用MYSQL/MSSQL吗?有可能使用这些语言吗?

编辑:转换数: 5000

代码语言:javascript
复制
SELECT (SHA2( '20191018143572123034102012221314181237774212' , 512));

接受371a4fbf2b393338d0a6c619ec18fe5f636fdc1992c09763acfd5dae0bb97b13359fb091e4a196ba085d1a60a312733d6a384e937e32c9aef7063c7911d46b84

预期: f8b915776eab735fdd10266b2e66068447904852b82c30eeb6de30703a087eb17ea4c4a37630494607194ddb9354c1211bd984fb5f4d9cff95f5a24ed52065e7 :

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-21 15:41:46

用5000行或更多行填充表。

代码语言:javascript
复制
mysql> create table n ( n smallint unsigned auto_increment primary key);
mysql> insert into n (n) select null;
mysql> insert into n (n) select null from n;
... repeat doubling the rows in the table until you have more than 5000 rows ...

将会话变量设置为原始字符串。

代码语言:javascript
复制
mysql> set @value = '20191018143572123034102012221314181237774212';

将变量设置为5000行集中每一行的哈希。

代码语言:javascript
复制
mysql> select @value := sha2(@value, 512) from n limit 5000;

该查询的最后一行将是哈希5000次的结果。还可以查询变量的当前值:

代码语言:javascript
复制
mysql> select @value;
+----------------------------------------------------------------------------------------------------------------------------------+
| @value                                                                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------+
| f8b915776eab735fdd10266b2e66068447904852b82c30eeb6de30703a087eb17ea4c4a37630494607194ddb9354c1211bd984fb5f4d9cff95f5a24ed52065e7 |
+----------------------------------------------------------------------------------------------------------------------------------+

坦率地说,这在除SQL之外的任何其他编程语言中都更容易。

你应该用个循环。

您还可能希望使用另一种散列方法,它使用键拉伸而不是依赖于5000次SHA2。通常情况下,重复多次重哈希是为了使计算耗时更长,从而降低攻击者尝试自动密码猜测器的吸引力。

如果您想要添加一个小延迟,也可以在应用程序中使用SELECT SLEEP(1)或等效函数。

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

https://stackoverflow.com/questions/59843807

复制
相关文章

相似问题

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