【发布时间】:2011-10-11 21:09:31
【问题描述】:
对于我正在开发的应用程序,我需要生成一个会话令牌,该令牌必须具有以下属性:
- 至少对于应用程序来说应该是唯一的,全局唯一会更好
- 应该是不可预测的
- 它不应该太长,因为它必须在 http 请求标头中传递,所以越小越好
我正在考虑使用加密随机数调整 Guid 结构,但这可能有点矫枉过正。有人知道/创建了适合所有这些属性的数据结构吗?
【问题讨论】:
-
为什么不直接使用 Guid?
-
常规 guid 有什么问题?
-
我只能重复 GUID 建议。它广泛且容易获得,随心所欲且独一无二,格式化为文本时只有 32 个字节。为什么需要“确保不可预测性”?我通过默默无闻闻到安全感......
-
@Kel 我想看看你预测我的向导
-
@delnan:GUID 不保证以任何方式随机。 Kel 可能希望确保会话密钥的不可预测性有很多原因。例如:如果我可以预测一个广泛使用的 Web 服务将在未来生成哪些会话密钥,那么我可以开始今天开始研究如何攻击可能正在使用该密钥的会话 明天.
标签: c#