Python脚本能解密在C++程序中创建的HASH吗?
我有一个比赛,大家可以通过在一个安卓应用里发现的秘密代码来参加。为了确保只有购买了这个应用的人才能参加比赛,我选择了用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)。