c#.net利用RNGCryptoServiceProvider产生任意范围强随机数的办法
//这样产生0 ~ 100的强随机数(含100)
int max = 100;
int rnd = int.MinValue;
decimal _base = (decimal)long.MaxValue;
byte[] rndSeries = new byte[8];
System.Security.Cryptography.RNGCryptoServiceProvider rng
= new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(rndSeries);
//不含100需去掉+1
rnd = (int)(Math.Abs(BitConverter.ToInt64(rndSeries, 0)) / _base * (max+1));
//这个rnd就是你要的随机数,
//但是要注意别扔到循环里去,实例化RNG对象可是很消耗资源的
原文地址:http://www.2cto.com/kf/201007/52493.html
/// <summary>
/// 生成随机数
/// </summary>
/// <param name="minVal">最小值(包含)</param>
/// <param name="maxVal">最大值(不包含)</param>
/// <returns></returns>
public static int GetRandom(int minVal, int maxVal)
{
//这样产生0 ~ 100的强随机数(不含100)
int m = maxVal - minVal;
int rnd = int.MinValue;
decimal _base = (decimal)long.MaxValue;
byte[] rndSeries = new byte[8];
System.Security.Cryptography.RNGCryptoServiceProvider rng
= new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(rndSeries);
long l = BitConverter.ToInt64(rndSeries, 0);
rnd = (int)(Math.Abs(l) / _base * m);
return minVal + rnd;
}
使用:
int randomi = 0;
randomi = GetRandom(100000, 999999);
转载于:https://www.cnblogs.com/lcyuhe/p/7126405.html
c#.net利用RNGCryptoServiceProvider产生任意范围强随机数的办法相关推荐
- 转: c#.net利用RNGCryptoServiceProvider产生任意范围强随机数的办法
//这样产生0 ~ 100的强随机数(含100) int max = 100; int rnd = int.MinValue; decimal _base = (decimal)long.MaxVal ...
- java 生成随机数(利用Random生成任意范围的随机数)
目录 一.为什么需要这种方法? 二.方法思路 1.头尾相减 2.尾巴+1 3.最终的结果加上初始的首个数字 代码 运行结果 一.为什么需要这种方法? Random函数只能限制生成随机数的区间的末尾是多 ...
- 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
利用函数翻转任意数组 利用函数冒泡排序 利用函数判断闰年 用户输入年份,输出当前年份2月份的天数
- go利用反射实现任意类型切片删除元素
go利用反射实现任意类型切片删除元素 在使用Go切片的时候,我们经常会需要删除切片内的元素,但是由于类型的限制,导致我们需要写很多类似的函数,那么下面我们通过go的反射机制实现一个任意类型的切片元素删 ...
- 利用函数求任意两个数之间的和
利用函数求任意两个数之间的和 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...
- 智慧交通怎样利用科技打造一个“最强大脑”
智慧交通怎样利用科技打造一个"最强大脑" 随着全国公路通车里程不断增长,机动车越来越多地飞入寻常百姓家.日益增长的机动车和驾驶人数量是百姓生活水平显著提升的标志,但也给公安交管工作 ...
- 利用Matlab将任意曲线旋转任意角度
利用Matlab将任意曲线旋转任意角度 公式计算 数据 matlab代码 结果 公式计算 对于如上图所示的任意曲线,需要绕固定点O旋转某一角度,取曲线上任意一点A计算旋转后的坐标值. 设OA的长度为L ...
- JavaScript-84:利用函数求任意两个数的和
1 利用函数求任意两个数的和 function getSum (num, num1) {console.log(num + num1); } getSum(1, 2); getSum(1100, 30 ...
- 密码学安全强随机数生成器_强密码学简介
密码学安全强随机数生成器 让我惊讶的一件事是,大多数开发人员都不熟悉强大的加密技术. 在我的职业生涯中,我已经看到过各种各样的错误,这些错误会导致数据泄漏,可猜测的密码,不幸的泄露甚至更糟. 令人高兴 ...
最新文章
- shell中竖线的作用_如何在 Linux 中安装、配置和使用 Fish Shell?
- 奥巴马表示10天内债务谈判出结果 债务违约可能性底
- 在.NET程序中使用PIPE(管道技术)
- R语言 文本挖掘 tm包 使用
- Android 如何有效的解决内存泄漏的问题
- 论文浅尝 | 用于视觉推理的显式知识集成
- [转]Effective C# 原则7: 选择恒定的原子值类型数据
- 图像变换——分段线性变换
- DisplayMetircs 类
- 9.腾讯微博Android客户端开发——发送微博
- Spring MVC AOP 初步学习
- ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
- centos 5.6 x86 安装 文泉驿字体
- 最佳阵容问题matlab,若在NBA组一队小球打法最佳阵容,哪5人在一起最无解?
- matlab课程设计语音,语音伪装课程设计代码,求助
- 三菱fx1n40mr001接线图_三菱FX1N-40MR-001使用说明书 - 广州凌控
- 如何查看linux系统版本
- 获取发表论文期刊的封面和目录页
- MTK camera flashlight bring up
- 万维网之父要推翻自己一手开创的互联网世界!