1

我正在开发 ASP.NET MVC WEB API 服务。就像我在任何地方都需要安全令牌一样。我有一个使用数据库信息生成 guid 的想法。例如,我需要从 db 中获取实体,然后在此信息中获取 id、datecreated 和 crete guid。它将是发送给客户端的令牌。所以他可以访问他的数据。

问题是我不知道如何生成它。请给我一些建议以使其发挥作用。

我发现了有趣的文章http://www.singular.co.nz/blog/archive/2007/12/20/shortguid-a-shorter-and-url-friendly-guid-in-c-sharp.aspx用于缩短 GUID .

任何帮助将不胜感激,迪玛。

4

1 回答 1

1

我只是将一个AccessKey uniqueidentifier not null unique与每个实体一起存储。你可以把它交给客户。这样你就不需要搞乱加密或散列。

只要确保不要使用Guid.NewGuid()它,因为它的密码强度不高。用这个:

public static class SecureGuidGenerator
{
    [ThreadStatic]
    static RandomNumberGenerator rng;

    public static Guid GetNext()
    {
        if (rng == null) rng = RandomNumberGenerator.Create();
        var bytes = new byte[16];
        rng.GetBytes(bytes);
        return new Guid(bytes);
    }
}
于 2012-07-29T14:14:35.363 回答