简单描述C 简单描述cobb角的测量技术
创始人
2024-05-02 13:50:42
0

借助于System.Security.Cryptography命名空间的密码资源,将非常容易产生与比较C#哈希值。因为所有的哈希函数都接收类型为 Byte() 的输入,因此可能需要将初始数据转换成一个字节数组才能够为它产生哈希值。欲为一个字符串值建立一个哈希值,请依下列步骤进行:

1、使用Using语句导入System、System.Security、System.Security.Cryptographic与System.Text命名空间,这样一来,您才不需要于程序代码中编写一长串的完整名称:

  1. using System.Drawing;  
  2. using System.Text;  
  3. using System.Windows.Forms;  
  4. using System.Security.Cryptography; 

2、声明一个字符串变量来持有您的初始数据,并声明两个字节数组(未定义大小)来持有初始字节与所产生出的C#哈希值:

  1. string sSourceData;  
  2. byte[] tmpSource;  
  3. byte[] tmpHash; 

3、使用 GetBytes() 方法(它是System.Text.ASCIIEncoding类的一部分)将您的初始字符串转换至一个字节数组中:

  1. SourceData = "MySourceData";  
  2. // 根据初始数据来建立一个字节数组  
  3. tmpSource = ASCIIEncoding.ASCII.GetBytes(sSourceData); 

4、通过调用MD5CryptoServiceProvider类的实例的ComputeHash方法来为您的初始数据计算出MD5哈希值。请注意,欲计算出另外一个哈希值,您必须建立该类的另外一个实例。

  1. // 根据初始数据计算出哈希值  
  2. tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource); 

5、tmpHash字节数组现在会获取您初始数据的哈希值(128位值=16字节)。将此显示或储存成一个十六进制字符串通常会非常有用,下列程序代码即是进行此项处理:

  1. lblHashResult.Text = sSourceData + "\n" + ByteArrayToString(tmpHash) + "\n";  
  2. private string ByteArrayToString(byte[] arrInput  
  3. {  
  4. StringBuilder sOutput = new StringBuilder(arrInput.Length);  
  5. for (int i = 0; i < arrInput.Length; i++){  
  6. sOutput.Append(arrInput[i].ToString("X2"));  
  7. }  
  8. return sOutput.ToString();  

6、通过上述程序代码,您便能够为初始数据产生出哈希值并以一个十六进制字符串来表示。接下来,我们要继续说明如何比较两个C#哈希值。为初始数据建立哈希值的目的之一,就是要提供一种方式来检查数据是否被更改过,或是不通过实际的值来比较两个值。不论是哪一种情况,您都需要比较两个哈希值。然而,如果两个哈希值皆已储存成十六进制字符串,则比较C#哈希值的操作将会更加简易。当然,也有可能两个哈希值都是以字节数组的形式存在。后续步骤的程序代码将延续先前步骤的程序代码,以便示范如何比较两个字节数组。

【编辑推荐】

  1. 浅谈C#开发WinForm
  2. C#静态构造函数简介
  3. C#实现ControlTemplate方法
  4. C#验证输入方法详解
  5. 浅析C#透明窗体

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...