using System;
using System.Runtime.InteropServices;
using System.Security;
public class Test
{
[SuppressUnmanagedCodeSecurity]
[DllImport("MSVCR100.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
internal static extern int rand();
[SuppressUnmanagedCodeSecurity]
[DllImport("MSVCR100.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
internal static extern int srand(int seed);
// Function to show different randoms
public static void Main()
{
// srand(1); // if srand() is not called, 1 is used by default
Console.WriteLine(Randomize(16));
Console.WriteLine(Randomize(16));
Console.WriteLine(Randomize(16));
Console.WriteLine();
Console.WriteLine("These values are different, but will still be the same pattern.");
srand(2);
Console.WriteLine(Randomize(16));
Console.WriteLine(Randomize(16));
Console.WriteLine(Randomize(16));
Console.WriteLine();
Console.WriteLine("These values will be different each time the program is run.");
TimeSpan CurrentTime = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0);
srand((int) CurrentTime.TotalSeconds);
Console.WriteLine(Randomize(16));
Console.WriteLine(Randomize(16));
Console.WriteLine(Randomize(16));
Console.Read();
}
// Randomize function from Sky Army Knife
public static string Randomize(int Length)
{
string str = (string) null;
char[] chArray = new char[16]
{
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F'
};
int num1 = 1;
int num2 = Length * 3 - 1;
if (1 <= num2)
{
do
{
int num3 = num1;
int num4 = 3;
int num5 = (int) ((uint) num3 / (uint) num4) * 3;
str = num3 - num5 != 0 ? str + (object) chArray[rand() % 16] : str + " ";
++num1;
}
while (num1 <= num2);
}
return str;
}
}