【发布时间】:2011-06-17 08:42:12
【问题描述】:
我个人厌倦了为我的 Web 项目重新实现“票证”机制以进行一些一次性操作,例如帐户激活或密码重置。我知道这很简单,但它需要我保留(并坚持!)两条数据:票证本身和到期日期。
所以我有这个想法,生成一个唯一的字符串,其中嵌入了日期时间(到期日期),我们可以在作为 url-request 的一部分接收时检查它。
我从这个开始:
var clearTicket = Convert.ToInt64(expiration.ToString("yyyyMMddhhmm")).ToString("x12") + key.ToString("N");
但我希望它更紧凑。我想是BaseXX-ish。 任何想法如何有效地实现这种编码/解码(考虑 url-safe charset)?
【问题讨论】:
-
看起来不是很安全......更改到期日期很容易
-
确实会,但不会以任何方式影响安全性。该字符串将存储在数据库中,实际上我将通过它搜索用户配置文件,然后才提取日期时间以查看令牌是否已过期。
标签: c#