本篇内容主要讲解“C#哈希值怎么建立”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#哈希值怎么建立”吧!
借助于System.Security.Cryptography命名空间的密码资源,将非常容易产生与比较C#哈希值。因为所有的哈希函数都接收类型为 Byte() 的输入,因此可能需要将初始数据转换成一个字节数组才能够为它产生哈希值。欲为一个字符串值建立一个哈希值,请依下列步骤进行:
使用Using语句导入System、System.Security、System.Security.Cryptographic与System.Text命名空间,这样一来,您才不需要于程序代码中编写一长串的完整名称:
using System.Drawing; using System.Text; using System.Windows.Forms; using System.Security.Cryptography;
声明一个字符串变量来持有您的初始数据,并声明两个字节数组(未定义大小)来持有初始字节与所产生出的C#哈希值:
string sSourceData; byte[] tmpSource; byte[] tmpHash;
使用 GetBytes() 方法(它是System.Text.ASCIIEncoding类的一部分)将您的初始字符串转换至一个字节数组中:
SourceData = "MySourceData"; // 根据初始数据来建立一个字节数组 tmpSource = ASCIIEncoding.ASCII.GetBytes(sSourceData);
通过调用MD5CryptoServiceProvider类的实例的ComputeHash方法来为您的初始数据计算出MD5哈希值。请注意,欲计算出另外一个哈希值,您必须建立该类的另外一个实例。
// 根据初始数据计算出哈希值 tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource);
tmpHash字节数组现在会获取您初始数据的哈希值(128位值=16字节)。将此显示或储存成一个十六进制字符串通常会非常有用,下列程序代码即是进行此项处理:
lblHashResult.Text = sSourceData + "\n" + ByteArrayToString(tmpHash) + "\n"; private string ByteArrayToString(byte[] arrInput { StringBuilder sOutput = new StringBuilder(arrInput.Length); for (int i = 0; i < arrInput.Length; i++){ sOutput.Append(arrInput[i].ToString("X2")); } return sOutput.ToString(); }
到此,相信大家对“C#哈希值怎么建立”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!