2010年12月7日 星期二

[C#] 強而有力的亂數-RNGCryptoServiceProvider

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Security.Cryptography" %>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {

        //建立一個亂數
        RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
        byte[] rb = new byte[4];
        rng.GetBytes(rb);
        int value = BitConverter.ToInt32(rb, 0);
        if (value < 0) value = -value;
        Response.Write(value);
       
        //建立一個小於100的亂數
        rng.GetBytes(rb);
        int value = BitConverter.ToInt32(rb, 0);
        value = value % (100 + 1);
        if (value < 0) value = -value;
        Response.Write(value);
     }
</script>    

/*
說明一下 宣告一個rb的Byte陣列
rng.GetBytes(rb); //這是 把rb 陣列 裡面 各個 index 塞入一個byte亂數
nt value = BitConverter.ToInt32(rb, 0);//把rb陣列 轉回 int32 整數 
*/

沒有留言:

張貼留言