【问题标题】:Google recaptcha v2 encryption in vb.netvb.net 中的 Google recaptcha v2 加密
【发布时间】:2025-11-29 01:10:02
【问题描述】:

我正在尝试实现 Googles Recaptcha v2 的安全令牌版本,我已经成功实现了单站点版本。问题是我们将需要多个域来使用相同的密钥进行验证。关注documentation here,让我摸不着头脑。 “加密您的字符串”区域对于新用户(我)来说有点模糊。我曾尝试使用我自己的盐使用标准 AES 加密,但没有运气,我遇到了ERROR: Invalid stoken

使用此帖子 AES encryption/decryption 已经在加密和解密方面产生了一些结果,但我在 recaptcha 中收到了相同的错误消息。

为了尝试测试加密,我正在关注底部答案How to generate a Google ReCaptcha V2 secure token with PHP?中发布的内容

有没有人在 VB.NET 中得到这个工作?我的代码目前是这两个帖子中的一个块,在第二个帖子之后我得到以下输出:

  • Json:{"session_id":"1","ts_ms":1437712654577}

  • 网站密码:3330MgoTAAA333XFM388zn66iPtjOdQgREfZAgqZ

  • 加密:Ly32WGlavKyWBDBIip5IRHdZMCaeIe1077RJQ1sQ17UzNOj1SmvBQVipj3mGI32d

您可以看到加密的格式已关闭,至少从该 SO 帖子中的建议来看是这样。

干杯

【问题讨论】:

  • 我希望您发布的网站机密不是真实的……它被称为“机密”是有原因的。
  • 不,这是一个测试帐户,无论如何我都应该更改它。

标签: vb.net encryption recaptcha


【解决方案1】:

我在这里创建了一个 Recaptcha V2 安全令牌交换的工作示例:

RecaptchaV2.NET

它是用 C# 编写的,但您可以使用您最喜欢的在线 C# 到 VB .NET 代码转换器将其翻译成 VB。

【讨论】:

  • 这是一个救生员,它不仅有效而且效果很好。向你致敬,你回答。我确实有一个问题,您是否只是重写了他们在 C# 中提供的 Java 代码?他们关于加密的文档充其量是微不足道的。
  • 是的,他们的 java 代码是主要参考,因为目前没有其他 .NET 参考可用于执行安全令牌。需要注意的一点是,GUID 会话代码是在每次页面加载时创建的,因为根据谷歌关于该主题的有限文档,每个验证码请求它需要是唯一的。
  • 感谢您的洞察力,我相信这篇文章会对其他人有所帮助。
  • 我遇到了你的例子via a question in another language。不错的工作!同意谷歌文档应该更清楚一点。提及以下内容会很有帮助 - 嘿,您需要提取前 16 个字节的原因是创建一个有效的 AES 密钥,即 128 位(SHA1 哈希的完整 20 字节/160 位不是有效大小); -)。一个小提示,IV 可能不是必需的。 IIRC,IV 在使用 ECB 模式时会被忽略。