相关疑难解决方法(0)

生成随机密码

当我们网站上的用户丢失密码并前往"忘记密码"页面时,我们需要给他一个新的临时密码.我真的不介意这是多么随机,或者如果它匹配所有"需要的"强密码规则,我想要做的就是给他们一个密码,以便以后更改.

该应用程序是一个用C#编写的Web应用程序.所以我一直在考虑使用Guid的简单方法.即

Guid.NewGuid().ToString("d").Substring(1,8)
Run Code Online (Sandbox Code Playgroud)

Suggesstions?想法?

c# random passwords

219
推荐指数
10
解决办法
20万
查看次数

独特的随机字符串生成

我想生成随机唯一字符串,如MSDN库生成的字符串:

例如,http://msdn.microsoft.com/en-us/library/t9zk6eay.aspx.应生成类似't9zk6eay'的字符串.

c# random

91
推荐指数
6
解决办法
11万
查看次数

GUID的安全性是多么安全?

不久之前,我在一个用户可以购买门票的网络应用程序上工作.由于我们客户的流程的运作方式,您购买后实际获得的是一个带有票号的URL.

这些是在中东购买房产的门票,每张门票的价值可能在300万美元左右.显然抛出顺序整数本来是个坏主意.我们使用GUID,因为它们基本上是不可知的,但我的问题是:它们足够安全吗?

据我所知,GUIDs .NET产生的是完全伪随机的(除了一些非变量位).但是,我不知道使用什么算法来生成它们.

MSDN文档告诉我们Random快速且不安全,并且RNGCryptoServiceProvider速度慢且安全.也就是说,假设有人可以投入足够的努力来预测结果Random,但不是RNGCryptoServiceProvider.

如果您看到足够长的GUID序列,是否可以预测期货?如果是这样,你需要看多少?

[在我们的特殊情况下,之后会进行身体安全检查 - 您必须出示用于购买机票的护照 - 所以如果有人猜到别人的GUID 就不会糟糕,所以我们没有出汗当时.使用GUID作为数据库密钥的便利性使其成为一种有用的数据类型.]


编辑:

所以答案是"不够".

使用下面的0xA3的答案,并跟随他链接的问题的链接,以下代码将生成一个加密随机GUID,该GUID由RFC 4122的第4.4节有效:

static Guid MakeCryptoGuid()
{
    // Get 16 cryptographically random bytes
    RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
    byte[] data = new byte[16];
    rng.GetBytes(data);

    // Mark it as a version 4 GUID
    data[7] = (byte)((data[7] | (byte)0x40) & (byte)0x4f);
    data[8] = (byte)((data[8] | (byte)0x80) & (byte)0xbf);

    return new Guid(data);
}
Run Code Online (Sandbox Code Playgroud)

这比GUID产生的速度慢得多 …

.net cryptography guid

54
推荐指数
3
解决办法
1万
查看次数

.NET 3中System.Random的随机性如何?

我目前正在编写一个简单的密码生成器(C#).为此,我需要一些随机数字.

是否可以简单地使用.NET附带的Random类或者是否存在任何已知问题?

.net c# random

6
推荐指数
2
解决办法
3832
查看次数

标签 统计

c# ×3

random ×3

.net ×2

cryptography ×1

guid ×1

passwords ×1