我需要生成随机令牌,这样当我稍后看到它们时我绝对可以确定它们实际上是由我生成的,即其他人几乎不可能生成假令牌.这有点像序列号生成,除了我不需要唯一性.实际上,它很像数字签名,除了我是唯一需要验证"签名"的人.
我的解决方案如下:
有一个秘密字符串S(这是唯一没有打开的数据)
对于每个令牌,生成随机字符串K.
令牌= K + MD5(K + S)
验证令牌是我生成的:
将传入令牌分成K + H.
计算MD5(K + S),确保等于H.
在我看来,任何人都不可能可靠地生成H,给定K没有S.这个解决方案太简单了吗?
查看HMAC.