static string get_hash_string(byte[] buffer, RenameType type) { byte[] hash; switch (type) { case RenameType.md5: hash = Crypto.MD5.Create().ComputeHash(buffer); break; case RenameType.sha1: hash = Crypto.SHA1.Create().ComputeHash(buffer); break; case RenameType.sha256: hash = Crypto.SHA256.Create().ComputeHash(buffer); break; default: throw new NotSupportedException(type.ToString()); } return(new StringBuilder() .AppendJoin("", hash.Select(b => b.ToString("x").PadLeft(2, '0'))) .ToString()); }