gpt4 book ai didi

Ruby:加密签名字符串以确保真实性?

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:22 26 4
gpt4 key购买 nike

假设我有一个源服务器,它通过使用特定查询字符串参数的重定向行为需要向目标服务器提供详细信息。但是,我需要确保这些详细信息仅来 self 的源服务器。

我也不能确定目标服务器的完整性。或者具体来说,目标服务器可能受到威胁,因此任何加密 key 都可能已被恶意方读取。

我想我可以使用某种形式的公钥/私钥对来签署查询字符串。源服务器使用私钥对字符串进行签名,目标服务器使用公钥验证它来 self 的源服务器,并且消息没有被篡改。

我远不是密码学专家或任何东西,所以我在这里所做的任何假设都可能是错误的,如果是这样请纠正我:)

我基本上是在寻找一种(希望)简单的方法在 Ruby 中做到这一点。

最佳答案

可能,签署查询数据(在您的情况下是重定向 URL)的最简单形式是使用 HMAC .在这种情况下,您的源服务器和目标服务器需要共享一个公共(public) key - HMAC 不是一种公钥/私钥加密形式,而是一种 key 散列形式。

您要找的模块是ruby-hmac ,并且您的源服务器和目标服务器必须执行以下操作:

require 'hmac-md5'
HMAC::MD5.new("<your shared key>").update("<your URL to check>").hexdigest

并在目标端比较由源端的 HMAC 计算的摘要是等效的:因此双方进行相同的计算。 HMAC 的 hexdigest 可以简单地通过一个额外的查询参数从源传输到目标。

关于Ruby:加密签名字符串以确保真实性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071701/

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