using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
namespace CPUSharMon
{
public class CPUHeater
{
public enum JobTypes {
Light, Medium, High, Crazy
}
static void RunSHA()
{
Guid g = Guid.NewGuid();
SHA512 sha512 = new SHA512CryptoServiceProvider();
sha512.ComputeHash(g.ToByteArray());
}
static Tuple<string, string> GenDESKey()
{
string rndStr = Guid.NewGuid().ToString();
return new Tuple<string, string>(
rndStr.Substring(0, 8), rndStr.Substring(8, 8));
}
static byte[] Encrypt(DESCryptoServiceProvider des, byte[] data)
{
var desencrypt = des.CreateEncryptor();
return desencrypt.TransformFinalBlock(data, 0, data.Length);
}
static void RunDES()
{
var keyIv = GenDESKey();
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Key = Encoding.ASCII.GetBytes(keyIv.Item1);
des.IV = Encoding.ASCII.GetBytes(keyIv.Item2);
var data = new byte[4096];
var enc = Encrypt(des, data);
}
static void RunCrazyLoop()
{
for (var i = 0; i < 10000; i++)
{
Guid.NewGuid();
}
}
public static void RunJob(JobTypes type, int times)
{
int j = 0;
for (int i = 0; i < times; i++)
{
switch (type)
{
case JobTypes.Light:
Random rnd = new Random();
j = i + rnd.Next(i);
break;
case JobTypes.Medium:
RunSHA();
break;
case JobTypes.High:
RunDES();
break;
case JobTypes.Crazy:
RunCrazyLoop();
break;
}
}
}
public static void RunComplexJob()
{
RunJob(JobTypes.High, 80000);
RunJob(JobTypes.Light, 120000);
RunJob(JobTypes.Crazy, 6000);
RunJob(JobTypes.Medium, 30000);
}
}
}