線性同餘法產生亂數

線性同餘法, 使用C語言產生1000個亂數
X=SEED;
for(i=0;i<10000;i++)
{
 X=(A*X+C)%M;
}
其中A*X+C是線性函數
X的初始值是種子數
A是乘數, 符合 0<= A < M, 且A-1可以被M的所有質因數整除, 如果M是4的倍數, A也必需是4的倍數
C是增量, 符合 0<= C < M, 且C為質數
M是模數, 符合 M>0, 且M為質數

C# SHA256 hash

   SHA256 sha =  new SHA256Managed();
   byte []shabuffer =null;
   byte []buffer =null;
   buffer = System.Text.Encoding.ASCII.GetBytes(plain);
   shabuffer = sha.ComputeHash(buffer);  
   string sharet = Convert.ToBase64String(shabuffer);
 
plain 是原始字串
sharet 就是經過sha256與base64編碼的結果