尝试散列已知数据,但不允许用户重新创建散列

时间:2012-12-05 16:57:21

标签: cryptography

我的情况是我的应用程序根据它的序列号创建一个哈希值(例如:A1C2-E3G-4I5K)。该序列是用户已知的。哈希也将为用户所知。散列数据的最佳策略是什么,同时使用户不可能/极难自己创建散列?

我使用哈希作为显示远程应用程序上已发生操作的方式。

我考虑过私钥加密,但用户可以自己获取私钥。

2 个答案:

答案 0 :(得分:1)

您可以查看Keyed-HMAC。基本上,您可以在值上创建一个简单的SHA-256哈希加上一个秘密密钥,只有您的应用程序才知道。有了这个假设,用户将无法为自己创建有效的哈希值。

答案 1 :(得分:0)

您可以在对序列号进行哈希处理之前尝试“腌制”序列号 http://en.wikipedia.org/wiki/Salt_%28cryptography%29