gpt4 book ai didi

MYSQL 从 SHA1 生成登录哈希

转载 作者:行者123 更新时间:2023-11-29 13:12:30 24 4
gpt4 key购买 nike

我正在尝试创建一个临时登录链接 URI,用于仅使用 mysql 获得对安全区域的“可见”访问权限。这个想法是将字段的值设置为给定的 sha1 值。

sha1 值将通过连接几个随机字段和盐来确定。 (我不确定这是否是一个好的做法)

以下内容返回一个语法错误,我相当确定该错误与在子查询中使用相同的表名有关。有没有明智的方法来实现这一目标?我可以用 PHP 完成此任务,但我正在尝试发展自己的 SQL 技能。

任何有关“最佳实践”的建议也表示赞赏。

update rsvp set rsvp.rsvpViewHash = sha1(select sha1(concat(rsvp.rsvpURLSlug, rsvp.rsvpCreated, 'salt')) from rsvp);

最佳答案

几个问题:

  1. 您进行了两次哈希处理。如果您担心哈希的安全性,请使用不同的算法。已知 SHA1 不适合加密应用,因此请使用 SHA256。
  2. 您的子查询没有条件,因此它将尝试对表中的每一行进行 concat 和 sha1,这可能不是您想要的。这也可能是语法错误的根源;返回多行的子查询可能不是 sha1() 的合适参数,但我对 mysql 不够熟悉,无法了解这一事实。

无论如何,根本不需要子查询。像这样简化:

UPDATE rsvp
SET
rsvpViewHash = CAST(sha1(concat(rsvpURLSlug, rsvpCreated, 'salt')) AS CHAR(10000) CHARACTER SET utf8)
WHERE
-- conditions
;
<小时/>

已编辑

将 SHA 结果从 blob 转换为 char;假设目标字段 rsvpViewHash 能够存储 CHAR(10000)

关于MYSQL 从 SHA1 生成登录哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21885443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com