生成真随机数

//获取len位真随机数字(真随机数)
        public static string GetRealRandomNum(int len)
        {
            var sb = new StringBuilder();
            byte[] data = new byte[len];
            using (var provider = new RNGCryptoServiceProvider())
            {
                provider.GetBytes(data);
                foreach (byte item in data)
                {
                    string temp = (item % 10).ToString();
                    sb.Append(temp);
                }
            }
            return sb.ToString();
        }

 

转载于:https://www.cnblogs.com/jhxk/articles/7131031.html

Poco库本身不提供随机数生成的功能,但是可以通过Poco库中的Crypto::RandomBuffer类来生成随机数。如果需要生成随机数,可以使用第三方硬件设备或服务来获取随机数,并将其作为种子传递给Crypto::RandomBuffer类来生成随机数序列。例如,可以使用硬件随机数生成器,如Intel的RDRAND指令或ARM的NEON指令,或者使用在线随机数生成服务,如RANDOM.ORG。以下是一个使用RANDOM.ORG服务生成随机数的示例代码: ```c++ #include <Poco/Crypto/RandomBuffer.h> #include <Poco/Net/HTTPSClientSession.h> #include <Poco/URI.h> #include <iostream> int main() { Poco::Net::HTTPSClientSession session("www.random.org"); Poco::URI uri("/integers/?num=1&min=1&max=1000000000&col=1&base=10&format=plain&rnd=new"); session.sendRequest(Poco::Net::HTTPRequest(Poco::Net::HTTPRequest::HTTP_GET, uri.toString())); Poco::Net::HTTPResponse response; std::istream& rs = session.receiveResponse(response); unsigned char buffer[4]; rs.read(reinterpret_cast<char*>(buffer), 4); std::cout << "Random number: " << *reinterpret_cast<int*>(buffer) << std::endl; return 0; } ``` 该示例代码使用HTTPSClientSession类与RANDOM.ORG服务通信,请求生成一个1到1000000000之间的整数,并将其作为4字节的随机数种子传递给Crypto::RandomBuffer类,然后使用Crypto::RandomBuffer类生成一个随机数。这个随机数随机数,因为它是由RANDOM.ORG服务生成的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值