gpt4 book ai didi

perl - 您如何使用 SHA256 来创建 key 、值对和 secret 签名的 token ?

转载 作者:行者123 更新时间:2023-12-05 00:01:48 28 4
gpt4 key购买 nike

我想在这些隐藏字段的键值对的 sha 编码字符串的帮助下验证一些隐藏的输入字段(以确保它们在提交时没有更改)。我在网上看到了这个例子,但我不明白如何编码和
使用动态 secret 值解码这些值。有人可以帮助我了解如何在 perl 中执行此操作吗?

还有哪种签名类型(MD5、SHA1、SHA256 等)在性能和安全性之间取得了良好的平衡?

更新

那么,一旦编码后如何解码字符串?

最佳答案

我不知道您所说的“解包”是什么意思,但是您无法从哈希中获取原始字符串。

让我们来理解这个问题:你渲染了一些隐藏的字段,并且你想确保它们被提交时没有改变,对吧?以下是您如何确保这一点。

假设您有两个变量:

first: foo
second: bar

您可以使用 key 将它们散列在一起:
secret_key = "ysEJbKTuJU6u"
source_string = secret_key + "first" + "foo" + "second" + "bar"
hash = MD5(source_string)

# => "1adfda97d28af6535ef7e8fcb921d3f0"

现在您可以呈现您的标记:
<input type="hidden" name="first" value="foo" />
<input type="hidden" name="second" value="bar" />
<input type="hidden" name="hash" value="1adfda97d28af6535ef7e8fcb921d3f0">

提交表单后,您会得到值 firstsecond字段,以类似的方式将它们连接到您的 key 并再次散列。

如果哈希值相等,则您的值未更改。

注: 从不 将 key 呈现给客户端。并在散列之前对键/值对进行排序(以消除对顺序的依赖)。

(免责声明:我不是加密货币人,所以你现在可以停止阅读)

至于性能/安全性,即使发现 MD5 有弱点,它仍然非常有用,恕我直言。 SHA1 有一个理论上的弱点,尽管还没有成功的攻击。 SHA-256 没有已知的弱点。

关于perl - 您如何使用 SHA256 来创建 key 、值对和 secret 签名的 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830398/

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