Python脚本能解密在C++程序中创建的HASH吗?

-4 投票
1 回答
517 浏览
提问于 2025-04-16 23:44

我有一个比赛,大家可以通过在一个安卓应用里发现的秘密代码来参加。为了确保只有购买了这个应用的人才能参加比赛,我选择了用HMAC SHA256来加密一个共享的秘密。

所以我的秘密会在安卓应用里用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模块)能否解密用C语言和Crypto++加密的内容?

1 个回答

0

当你以这种方式使用哈希时,通常你会把秘密代码(明文)和秘密代码与共享秘密的哈希值一起传给你的网站。网站可以用它知道的共享秘密来进行相同的哈希运算,然后验证结果是否一致。

在你的服务器上“破解”哈希会增加很多额外的工作,而且我看不出这样做能增加任何安全性。

如果你必须避免以明文方式传输代码,使用共享秘密作为对称加密算法的密钥会更有效率(比如 AES)。

撰写回答