//这样产生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产生任意范围强随机数的办法相关推荐

  1. 转: c#.net利用RNGCryptoServiceProvider产生任意范围强随机数的办法

    //这样产生0 ~ 100的强随机数(含100) int max = 100; int rnd = int.MinValue; decimal _base = (decimal)long.MaxVal ...

  2. java 生成随机数(利用Random生成任意范围的随机数)

    目录 一.为什么需要这种方法? 二.方法思路 1.头尾相减 2.尾巴+1 3.最终的结果加上初始的首个数字 代码 运行结果 一.为什么需要这种方法? Random函数只能限制生成随机数的区间的末尾是多 ...

  3. 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年

    利用函数翻转任意数组 利用函数冒泡排序 利用函数判断闰年 用户输入年份,输出当前年份2月份的天数

  4. go利用反射实现任意类型切片删除元素

    go利用反射实现任意类型切片删除元素 在使用Go切片的时候,我们经常会需要删除切片内的元素,但是由于类型的限制,导致我们需要写很多类似的函数,那么下面我们通过go的反射机制实现一个任意类型的切片元素删 ...

  5. 利用函数求任意两个数之间的和

    利用函数求任意两个数之间的和 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...

  6. 智慧交通怎样利用科技打造一个“最强大脑”

    智慧交通怎样利用科技打造一个"最强大脑" 随着全国公路通车里程不断增长,机动车越来越多地飞入寻常百姓家.日益增长的机动车和驾驶人数量是百姓生活水平显著提升的标志,但也给公安交管工作 ...

  7. 利用Matlab将任意曲线旋转任意角度

    利用Matlab将任意曲线旋转任意角度 公式计算 数据 matlab代码 结果 公式计算 对于如上图所示的任意曲线,需要绕固定点O旋转某一角度,取曲线上任意一点A计算旋转后的坐标值. 设OA的长度为L ...

  8. JavaScript-84:利用函数求任意两个数的和

    1 利用函数求任意两个数的和 function getSum (num, num1) {console.log(num + num1); } getSum(1, 2); getSum(1100, 30 ...

  9. 密码学安全强随机数生成器_强密码学简介

    密码学安全强随机数生成器 让我惊讶的一件事是,大多数开发人员都不熟悉强大的加密技术. 在我的职业生涯中,我已经看到过各种各样的错误,这些错误会导致数据泄漏,可猜测的密码,不幸的泄露甚至更糟. 令人高兴 ...

最新文章

  1. shell中竖线的作用_如何在 Linux 中安装、配置和使用 Fish Shell?
  2. 奥巴马表示10天内债务谈判出结果 债务违约可能性底
  3. 在.NET程序中使用PIPE(管道技术)
  4. R语言 文本挖掘 tm包 使用
  5. Android 如何有效的解决内存泄漏的问题
  6. 论文浅尝 | 用于视觉推理的显式知识集成
  7. [转]Effective C# 原则7: 选择恒定的原子值类型数据
  8. 图像变换——分段线性变换
  9. DisplayMetircs 类
  10. 9.腾讯微博Android客户端开发——发送微博
  11. Spring MVC AOP 初步学习
  12. ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  13. centos 5.6 x86 安装 文泉驿字体
  14. 最佳阵容问题matlab,若在NBA组一队小球打法最佳阵容,哪5人在一起最无解?
  15. matlab课程设计语音,语音伪装课程设计代码,求助
  16. 三菱fx1n40mr001接线图_三菱FX1N-40MR-001使用说明书 - 广州凌控
  17. 如何查看linux系统版本
  18. 获取发表论文期刊的封面和目录页
  19. MTK camera flashlight bring up
  20. 万维网之父要推翻自己一手开创的互联网世界!

热门文章

  1. 用VB轻松调用其他程序
  2. vb屏蔽文本框点右键时的弹出菜单
  3. IBM新创AI病毒:想打谁就打谁,看脸发作绝不误伤,隐蔽性极强
  4. AI创业营第三期拉开帷幕:生存训练+思想盛宴
  5.  ̄□ ̄他咬了蜘蛛一口,从此蜘蛛精通C语言
  6. 这个假期,百度差一点点点重回巅峰
  7. 「python」使用Python操作Excel的学习
  8. Eclipse启动Web项目 Tomcat中webapps中没有项目文件夹
  9. Javascript - demo 与 捷径
  10. Kali Linux渗透基础知识整理(四):维持访问