我有一种情况,我的应用程序根据它的序列号创建哈希(例如:A1C2-E3G-4I5K)。该序列对用户是已知的。哈希也将为用户所知。散列数据的最佳策略是什么,同时使用户无法或很难自行创建散列?试图哈希已知数据,但不允许用户重新创建哈希
我使用散列作为显示远程应用程序发生操作的方式。
我曾想过私钥加密,但用户可以自己掌握私钥。
我有一种情况,我的应用程序根据它的序列号创建哈希(例如:A1C2-E3G-4I5K)。该序列对用户是已知的。哈希也将为用户所知。散列数据的最佳策略是什么,同时使用户无法或很难自行创建散列?试图哈希已知数据,但不允许用户重新创建哈希
我使用散列作为显示远程应用程序发生操作的方式。
我曾想过私钥加密,但用户可以自己掌握私钥。
你可以寻找到一个Keyed-HMAC之前“盐析”的序列号。基本上,你创建一个可以说你的价值SHA-256哈希值加上一个秘密密钥,只有你的应用程序已知。有了这个假设,用户将无法为自己创建有效的散列。
非常感谢,比我的本土黑客好多了! – Brian
我如何知道在重新创建散列时要使用什么盐?还是你建议使用非随机盐? – Brian
salt/iv不起作用,因为它不是秘密。你需要一个钥匙,而不是一个四。 – CodesInChaos
你想达到什么目的?这听起来像是与软件许可有关的东西 - 如果是这样,你可能会发现这是一个解决的问题(使用开源库引导)。 –