情况
我在我的 C# 项目中使用 Bouncy Castle API。我需要散列一个String
使用Org.BouncyCastle.Crypto
我的样品
String msg = "Message to Hash";
MD5Digest dig = new MD5Digest();
byte[] msgBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(msg);
dig.BlockUpdate(msgBytes, 0, msgBytes.Length);
byte[] result = new byte[dig.GetDigestSize()];
dig.DoFinal(result, 0);
Console.WriteLine("{0}", Convert.ToBase64String(result));
结果我得到了一个看起来像的哈希XasdDdflk7ghXi8azuhe==
问题
- 我总是在任何不同消息的末尾得到“==”。正常吗?
- 我试图从转换
byte[]
为String
使用System.Text.ASCIIEncoding.ASCII.GetString()
,但我得到像“!?......”这样的符号我想最终避免使用“==”。我应该怎么办 ?改变编码器?