我的情况是我的应用程序根据它的序列号创建一个哈希值(例如:A1C2-E3G-4I5K)。该序列是用户已知的。哈希也将为用户所知。散列数据的最佳策略是什么,同时使用户不可能/极难自己创建散列?
我使用哈希作为显示远程应用程序上已发生操作的方式。
我考虑过私钥加密,但用户可以自己获取私钥。
答案 0 :(得分:1)
您可以查看Keyed-HMAC。基本上,您可以在值上创建一个简单的SHA-256哈希加上一个秘密密钥,只有您的应用程序才知道。有了这个假设,用户将无法为自己创建有效的哈希值。
答案 1 :(得分:0)
您可以在对序列号进行哈希处理之前尝试“腌制”序列号 http://en.wikipedia.org/wiki/Salt_%28cryptography%29