【发布时间】:2008-11-27 06:41:28
【问题描述】:
我需要生成随机令牌,这样当我以后看到它们时,我可以绝对确定它们实际上是由我生成的,即其他人几乎不可能生成假令牌。这有点像序列号生成,只是我不需要唯一性。实际上,它很像数字签名,只是我是唯一需要验证“签名”的人。
我的解决方法如下:
- 有一个秘密字符串 S(这是唯一没有公开的数据)
- 对于每个token,生成一个随机字符串K
- 令牌 = K + MD5(K + S)
验证令牌是我生成的:
- 将传入令牌拆分为 K + H
- 计算MD5(K + S),确保等于H
在我看来,在没有 S 的情况下,任何人都不可能可靠地生成 H。这个解决方案是否过于简单?
【问题讨论】:
-
如何将token拆分为K+H?你怎么知道 K 是什么?
-
他在字符串末尾加上MD5,MD5固定长度为32个字符
标签: security encryption