生成安全的随机数(高斯密钥)RollDice

简介:

 //http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.rngcryptoserviceprovider(VS.80).aspx
    /// <summary>
    /// 生成安全的随机数(高斯密钥)RollDice
    /// </summary>
    /// <param name="num">个数</param>
    /// <returns>随机数</returns>
    public static string RandNumber(int num)
    {
        string str = "";
        // Create a byte array to hold the random value.
        byte[] randomNumber = new byte[1];

        // Create a new instance of the RNGCryptoServiceProvider. 
        RNGCryptoServiceProvider Gen = new RNGCryptoServiceProvider();
        for (int x = 0; x < num; x++)
        {
            // Fill the array with a random value.
            Gen.GetBytes(randomNumber);

            // Convert the byte to an integer value to make the modulus operation easier.
            int rand = Convert.ToInt32(randomNumber[0]);

            // Return the random number mod the number
            // of sides.  The possible values are zero-
            // based, so we add one.
            str += rand % 10;
        }
        return str;
    }



本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2011/05/27/2059644.html,如需转载请自行联系原作者
相关文章
|
26天前
|
机器学习/深度学习 算法 安全
随机性、熵与随机数生成器:解析伪随机数生成器(PRNG)和真随机数生成器(TRNG)
随机性在密码学、仿真和机器学习等领域中至关重要,本文探讨了随机性、熵的概念以及伪随机数生成器(PRNG)和真随机数生成器(TRNG)的原理和应用。PRNG通过算法生成看似随机的序列,适用于高效需求;TRNG利用物理过程生成真正随机数,适用于高安全需求。文章还讨论了两者的协同应用及其面临的挑战。
62 5
随机性、熵与随机数生成器:解析伪随机数生成器(PRNG)和真随机数生成器(TRNG)
|
5月前
|
设计模式 算法 程序员
伪随机数为什么叫伪随机数
伪随机数为什么叫伪随机数
65 1
|
6月前
|
算法 编译器 C语言
生成随机数
C语言中的`rand()`函数生成0-RAND_MAX间的伪随机数,需包含`stdlib.h`。序列重复因默认种子为1,可使用`srand(unsigned int seed)`初始化,通常结合`time(NULL)`设置种子以产生不同序列。`time()`函数从1970年至今的秒数(时间戳),包含于`time.h`,用于提供变化的种子。通过`rand() % b + a`可调整生成指定范围[a, b]内的随机数。
118 3
|
C++
如何在C++中生成随机数
在C++中,生成随机数是一个常见的技术需求。本文将介绍如何在C++中使用标准库来生成随机数。
206 0
C# 之 概率随机数
概率随机数:是在1-10内产生随机数,但是每个数生成的概率不同。例如1-9概率为10%,10的概率是%90;
747 0
C# 之 概率随机数