相关疑难解决方法(0)

为什么通过默默无闻的安全是一个坏主意?

我最近遇到了一个系统,其中所有的数据库连接都是由各种方式模糊的例程管理的,包括base 64编码,md5sums和各种其他技术.

这只是我,还是这种矫枉过正?有哪些替代方案?

security encryption security-by-obscurity

68
推荐指数
6
解决办法
3万
查看次数

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

创建一个真正的随机

可能重复:
为什么我的随机数生成器在C#中不是随机的?
如何用C#生成真正的(非伪)随机数?

我创造了一个骰子游戏,骰子基于百分位数,1-100.

public static void Roll()
{
    Random rand = new Random((int)DateTime.Now.Ticks);
    return rand.Next(1, 100);
}
Run Code Online (Sandbox Code Playgroud)

但我不认为这是基于当前时间的真实随机.

如果我做

for (int i = 0; i < 5; i++)
{
   Console.WriteLine("#" + i + " " + Roll());
}
Run Code Online (Sandbox Code Playgroud)

它们都是相同的值,因为它DateTime.Now.Ticks没有改变,它播种的数字相同.

我想我可以生成一个新的随机种子,如果由于当前时间种子是相同的,但它不像一个诚实的"重新滚动"

我应该怎么做才能尝试复制接近真实/诚实的骰子卷?我应该使用RNGCryptoServiceProvider该类来生成卷吗?

c# random

15
推荐指数
2
解决办法
2万
查看次数

随机数生成器,没有重复

基本上我正在创建一个程序来随机生成6个独特的彩票号码,所以在同一行中没有重复,这是我到目前为止的代码...

        //Generate 6 random numbers using the randomiser object

        int randomNumber1 = random.Next(1, 49);
        int randomNumber2 = random.Next(1, 49);
        int randomNumber3 = random.Next(1, 49);
        int randomNumber4 = random.Next(1, 49);
        int randomNumber5 = random.Next(1, 49);
        int randomNumber6 = random.Next(1, 49);

        textBox1.Text = randomNumber1.ToString();
        textBox2.Text = randomNumber2.ToString();
        textBox3.Text = randomNumber3.ToString();
        textBox4.Text = randomNumber4.ToString();
        textBox5.Text = randomNumber5.ToString();
        textBox6.Text = randomNumber6.ToString();

    }
Run Code Online (Sandbox Code Playgroud)

我得到随机数,但有时在同一行上有相同的数字,我如何使每个数字唯一????

提前致谢

c#

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

是否可以仅使用软件生成真正的随机数?

稍微观察一下,我发现大多数用于生成真随机数的解决方案都涉及检查自然现象.
但这真的有必要吗?
我的意思是,假设任何系统都可以判断Pi具有随机无限的数字序列,我们不能只建立一个类似于此的算法(假设64位架构):

  1. 取前64位.
  2. 将比特投入 double
  3. 接下来的64位
  4. 将比特投入 double
  5. 等等...

当然这可以增强(涉及种子,投射到整数等等......)

这听起来是对的还是我错过了什么?

注意:
关于假设pi,根据维基百科,人们普遍认为Pi是正常数.这不应该够吗?如果它不能被反驳,那对任何实际系统来说都不够吗?

random algorithm

4
推荐指数
2
解决办法
308
查看次数