Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# tạo số ngẫu nhiên an toàn


Để tạo số ngẫu nhiên an toàn, hãy sử dụng lớp RNGCryptoServiceProvider. Nó triển khai một bộ sinh số ngẫu nhiên mật mã học.

Sử dụng cùng lớp này, chúng ta tìm thấy một số giá trị ngẫu nhiên như sau:

using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider()) { 
    byte[] val = new byte[6]; 
    crypto.GetBytes(val); 
    randomvalue = BitConverter.ToInt32(val, 1); 
}

Để tạo số ngẫu nhiên an toàn, bạn có thể chạy mã sau.

Ví dụ

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; 
    } 
}

Kết quả

0.13559 
0.0465 
0.18058 
0.26494 
0.52231 
0.78927