相关疑难解决方法(0)

67
推荐指数
8
解决办法
4万
查看次数

非安全随机数生成器和安全随机数生成器之间有什么区别?

正如标题所说:非安全随机数发生器和安全随机数发生器之间有什么区别?

random cryptography

25
推荐指数
2
解决办法
4439
查看次数

aspnetcore(netcoreapp1.0)中System.Web.Security.Membership.GeneratePassword的替代方案

是否有替代System.Web.Security.Membership.GeneratePasswordin AspNetCore(netcoreapp1.0).

最简单的方法是使用一个Guid.NewGuid().ToString("n")足够长的密码,但它不是完全随机的.

asp.net asp.net-mvc asp.net-core asp.net-core-1.0 .net-standard-1.5

17
推荐指数
1
解决办法
5614
查看次数

每次运行应用程序时,随机数生成器生成相同的数字

我知道有很多次这个问题已经提出,但这些解决方案都不适合我.

首先,我在我的方法中做了这个 RandomNumGenerator(items)

List<int> randNum = new List<int>();
foreach (var item in items)
{
    randNum.Add(new Random(1000).Next());
}
Run Code Online (Sandbox Code Playgroud)

这总是给了我相同的数字,然后在看了这个答案之后我做了这个:

Random rnd = new Random(1000);
foreach (var item in items)
{
    randNum.Add(rnd.Next());
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下数字

325467165 
506683626   
1623525913  
2344573     
1485571032
Run Code Online (Sandbox Code Playgroud)

现在虽然循环的每次迭代都没问题,但问题是,当我停止并重新运行应用程序时,我得到了我之前重新获得的相同数字.

325467165 
506683626   
1623525913  
2344573     
1485571032
Run Code Online (Sandbox Code Playgroud)

这种行为只是在调试期间,还是每次调用时都会出现同样的问题RandomNumGenerator

.net c# random

9
推荐指数
4
解决办法
1万
查看次数

为什么没有string.Split(字符串)重载?

是否有任何有效的理由可以解释为什么没有String.Split接受分隔符字符串和要分割的文本的重载?

string[] Split(string delimiter)
Run Code Online (Sandbox Code Playgroud)

然后可以使用像

string input = "This - is - an - example";
string[] splitted = input.Split(" - ");
// results in:
//  { "This", "is", "an", "example" }
Run Code Online (Sandbox Code Playgroud)

我真的知道,我可以轻松地创建一个扩展方法,但必须有正当理由说明为什么没有添加它.

请注意,我不是在寻找如何使用字符串分隔符拆分字符串的解决方案,我正在寻找解释,为什么这样的重载可能会导致问题.这是因为我认为它不会真正引起问题,我发现初学者很难理解为什么我们必须传递一个实际string[]而不是简单string的分隔符.

.net c# string split code-design

8
推荐指数
1
解决办法
1770
查看次数

随机与随机数生成器

为什么Random类不被视为“随机”足以用于高安全性应用程序(例如密码学),并且建议用于System.RandomNumberGenerator这些应用程序?

.net c# random

5
推荐指数
0
解决办法
1100
查看次数

Random.NextDouble方法可以返回'1.0'吗?

文档 Random.NextDouble中写道

返回介于0.0和1.0之间的随机数.

我想问一下,它有可能1在任何情况下都会返回吗?

c# random numbers

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

C#只从RNGCryptoServiceProvider获取1-15的数字?

由于RNGCryptoServiceProvider比Random()更"安全"(产生高质量的随机数),我觉得使用它.性能不是问题.但是,而不是读取最后一位数字,并以某种方式决定何时在它之前添加0或1 ..是否有更好(更准确)的方式?

byte[] data = new byte[4];
rng.GetBytes(data);
int value = BitConverter.ToInt32(data, 0);
Console.WriteLine(value);
Run Code Online (Sandbox Code Playgroud)

c# random

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

在指定范围内使用RNGCRYPTOSERVICEPROVIDER生成随机数

我已经通过以下编码来生成1000-9999范围内的范围:

Dim byt As Byte() = New Byte(1000) {}

Dim rngCrypto As New RNGCryptoServiceProvider()
rngCrypto.GetBytes(byt)

Dim randomNumber As Integer = BitConverter.ToInt32(byt, 9999)
Label4.Text = randomNumber
Run Code Online (Sandbox Code Playgroud)

它显示错误:

指数超出范围.必须是非负数且小于集合的大小.参数名称:startIndex

我做了以下代码.这是对的吗?

Public Sub secrand()

    Static r As Random = Nothing

    If r Is Nothing Then
        Dim seed() As Byte = New Byte(4) {}
        Dim rng As New RNGCryptoServiceProvider
        rng.GetBytes(seed)
        r = New Random(BitConverter.ToInt32(seed, 0))
        Label4.Text = r.Next(1000, 9999)
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

.net vb.net random cryptography

2
推荐指数
1
解决办法
2241
查看次数