Computing MD5/SHA256/SHA512 Checksum
1 using System;
2 using System.Security.Cryptography;
3 using System.Text;
4
5 class Test {
6
7 public static int Main(String[] args) {
8 if (args.Length != 2) {
9 return 1;
10 } else {
11 HashAlgorithm algo;
12 switch (args[0].ToUpper()) {
13 case "MD5":
14 algo = new MD5CryptoServiceProvider();
15 break;
16 case "SHA256":
17 algo = new SHA256CryptoServiceProvider();
18 break;
19 case "SHA512":
20 algo = new SHA512CryptoServiceProvider();
21 break;
22 default:
23 return 2;
24 }
25 Console.WriteLine(ComputeChecksum(algo, args[1]));
26 return 0;
27 }
28 }
29
30 static public String ComputeChecksum(HashAlgorithm algo, String message) {
31 var bytes = Encoding.UTF8.GetBytes(message);
32 var digest = algo.ComputeHash(bytes);
33 var checksum = new StringBuilder();
34 foreach (Byte b in digest) {
35 checksum.Append(b.ToString("x2"));
36 }
37 return checksum.ToString();
38 }
39
40 }
