สำหรับหมายเลขสุ่มที่ปลอดภัย ให้ใช้คลาส RNGCryptoServiceProvider มันใช้ตัวสร้างตัวเลขสุ่มเข้ารหัส
เมื่อใช้คลาสเดียวกัน เราพบค่าสุ่มบางค่าโดยใช้ค่าต่อไปนี้ -
using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider()) { byte[] val = new byte[6]; crypto.GetBytes(val); randomvalue = BitConverter.ToInt32(val, 1); }
หากต้องการสร้างหมายเลขความปลอดภัยแบบสุ่ม คุณสามารถลองเรียกใช้รหัสต่อไปนี้
ตัวอย่าง
using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using System.Security.Cryptography; public class Demo { public static void Main(string[] args) { for (int i = 0; i <= 5; i++) { Console.WriteLine(randomFunc()); } } private static double randomFunc() { string n = ""; int randomvalue; double n2; using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider()) { byte[] val = new byte[6]; crypto.GetBytes(val); randomvalue = BitConverter.ToInt32(val, 1); } n += randomvalue.ToString().Substring(1, 1)[0]; n += randomvalue.ToString().Substring(2, 1)[0]; n += randomvalue.ToString().Substring(3, 1)[0]; n += randomvalue.ToString().Substring(4, 1)[0]; n += randomvalue.ToString().Substring(5, 1)[0]; double.TryParse(n, out n2); n2 = n2 / 100000; return n2; } }
ผลลัพธ์
0.13559 0.0465 0.18058 0.26494 0.52231 0.78927