【发布时间】:2011-10-28 13:06:55
【问题描述】:
我有一个比赛,人们可以使用他们在 Android 应用中发现的密码参加比赛。我选择确保只有购买了该应用程序的人才能参加比赛的方法是使用 HMAC SHA256 的共享密钥编码(加密?)。
所以我的秘密将在 Android 应用程序中用 C 加密(使用 Crypto++,你有什么更好的 SHA 库的建议吗?我发现 Crypto++ 真的很难使用)。
这只是一个例子:
Unencrypted shared secret = "my shared secret"
Unencrypted secret code = "abcdef"
Encrypted shared secret = "dsgdfgdfgdfgfdgf"
Encrypted shared secret = "ddffgdgdf"
因此,当用户发现密码时,他们将被带到网页(python 脚本),并且 HMAC 加密的共享密码将作为 CGI 参数传递:
http://mysite/competition.py?encodedSecret=3dfdfdg343jkfjk390kl
然后我的 python 脚本将查看 CGI 参数并对其进行解密以获取共享密钥(以验证比赛条目是否来自拥有该应用程序的用户)和密码(以查看用户是否赢得了任何东西)。
我的问题是: python 脚本(使用 hashlib 模块)是否可以解密使用 Crypto++ 在 C 中加密的内容?
【问题讨论】:
-
如果是无法解密的哈希。
-
您无法解密哈希,但您可以通过执行相同的加密来验证哈希并查看结果是否匹配。
-
@nandhp:我可以解密 SHA256 吗?如果没有,我如何将我的共享密钥发送到 python 脚本?
-
@Sam 您的问题专门询问有关解密 HASH 的问题(全部大写,不少于)。也许你应该解决你的问题,而不是侮辱那些试图免费帮助你的人。
-
@Sam JBernardo 是正确的...您不能“解密”哈希,因为它们被设计为 单向函数。暴力破解 SHA256 将需要数十亿年的时间。如果您想要加密,请查看 AES。您加密/解密的语言根本不重要。
标签: c++ python encryption hash hmac