Form1.cs
上传用户:chinafred
上传日期:2007-08-14
资源大小:10127k
文件大小:8k
源码类别:

数据库编程

开发平台:

C#

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. //using System.Security;
  8. using System.Security.Cryptography;
  9. using System.Text;
  10. namespace ch9_3
  11. {
  12. /// <summary>
  13. /// Form1 的摘要说明。
  14. /// </summary>
  15. public class Form1 : System.Windows.Forms.Form
  16. {
  17. private System.Windows.Forms.Label label1;
  18. private System.Windows.Forms.TextBox textBox1;
  19. private System.Windows.Forms.Button button1;
  20. private System.Windows.Forms.TextBox textBox2;
  21. private System.Windows.Forms.Label label2;
  22. private System.Windows.Forms.Label label3;
  23. private System.Windows.Forms.Button button2;
  24. private System.Windows.Forms.Label label4;
  25. private System.Windows.Forms.Button button3;
  26. private System.Windows.Forms.TextBox textBox4;
  27. private System.Windows.Forms.TextBox textBox3;
  28. private System.Windows.Forms.Label label5;
  29. /// <summary>
  30. /// 必需的设计器变量。
  31. /// </summary>
  32. private System.ComponentModel.Container components = null;
  33. public Form1()
  34. {
  35. //
  36. // Windows 窗体设计器支持所必需的
  37. //
  38. InitializeComponent();
  39. //
  40. // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
  41. //
  42. }
  43. /// <summary>
  44. /// 清理所有正在使用的资源。
  45. /// </summary>
  46. protected override void Dispose( bool disposing )
  47. {
  48. if( disposing )
  49. {
  50. if (components != null) 
  51. {
  52. components.Dispose();
  53. }
  54. }
  55. base.Dispose( disposing );
  56. }
  57. #region Windows Form Designer generated code
  58. /// <summary>
  59. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  60. /// 此方法的内容。
  61. /// </summary>
  62. private void InitializeComponent()
  63. {
  64. this.label1 = new System.Windows.Forms.Label();
  65. this.textBox1 = new System.Windows.Forms.TextBox();
  66. this.button1 = new System.Windows.Forms.Button();
  67. this.textBox2 = new System.Windows.Forms.TextBox();
  68. this.label2 = new System.Windows.Forms.Label();
  69. this.label3 = new System.Windows.Forms.Label();
  70. this.textBox4 = new System.Windows.Forms.TextBox();
  71. this.button2 = new System.Windows.Forms.Button();
  72. this.textBox3 = new System.Windows.Forms.TextBox();
  73. this.label4 = new System.Windows.Forms.Label();
  74. this.button3 = new System.Windows.Forms.Button();
  75. this.label5 = new System.Windows.Forms.Label();
  76. this.SuspendLayout();
  77. // 
  78. // label1
  79. // 
  80. this.label1.Location = new System.Drawing.Point(24, 24);
  81. this.label1.Name = "label1";
  82. this.label1.Size = new System.Drawing.Size(216, 23);
  83. this.label1.TabIndex = 0;
  84. this.label1.Text = "输入要进行哈希加密的字符串1";
  85. // 
  86. // textBox1
  87. // 
  88. this.textBox1.Location = new System.Drawing.Point(24, 56);
  89. this.textBox1.Multiline = true;
  90. this.textBox1.Name = "textBox1";
  91. this.textBox1.Size = new System.Drawing.Size(224, 24);
  92. this.textBox1.TabIndex = 1;
  93. this.textBox1.Text = "";
  94. // 
  95. // button1
  96. // 
  97. this.button1.Location = new System.Drawing.Point(176, 96);
  98. this.button1.Name = "button1";
  99. this.button1.TabIndex = 2;
  100. this.button1.Text = "哈希处理";
  101. this.button1.Click += new System.EventHandler(this.button1_Click);
  102. // 
  103. // textBox2
  104. // 
  105. this.textBox2.Location = new System.Drawing.Point(24, 152);
  106. this.textBox2.Multiline = true;
  107. this.textBox2.Name = "textBox2";
  108. this.textBox2.Size = new System.Drawing.Size(224, 48);
  109. this.textBox2.TabIndex = 3;
  110. this.textBox2.Text = "";
  111. // 
  112. // label2
  113. // 
  114. this.label2.Location = new System.Drawing.Point(24, 112);
  115. this.label2.Name = "label2";
  116. this.label2.TabIndex = 4;
  117. this.label2.Text = "哈希加密结果1";
  118. // 
  119. // label3
  120. // 
  121. this.label3.Location = new System.Drawing.Point(272, 112);
  122. this.label3.Name = "label3";
  123. this.label3.TabIndex = 9;
  124. this.label3.Text = "哈希加密结果2";
  125. // 
  126. // textBox4
  127. // 
  128. this.textBox4.Location = new System.Drawing.Point(272, 152);
  129. this.textBox4.Multiline = true;
  130. this.textBox4.Name = "textBox4";
  131. this.textBox4.Size = new System.Drawing.Size(224, 48);
  132. this.textBox4.TabIndex = 8;
  133. this.textBox4.Text = "";
  134. // 
  135. // button2
  136. // 
  137. this.button2.Location = new System.Drawing.Point(424, 96);
  138. this.button2.Name = "button2";
  139. this.button2.TabIndex = 7;
  140. this.button2.Text = "哈希处理";
  141. this.button2.Click += new System.EventHandler(this.button2_Click);
  142. // 
  143. // textBox3
  144. // 
  145. this.textBox3.Location = new System.Drawing.Point(272, 56);
  146. this.textBox3.Multiline = true;
  147. this.textBox3.Name = "textBox3";
  148. this.textBox3.Size = new System.Drawing.Size(224, 24);
  149. this.textBox3.TabIndex = 6;
  150. this.textBox3.Text = "";
  151. // 
  152. // label4
  153. // 
  154. this.label4.Location = new System.Drawing.Point(272, 24);
  155. this.label4.Name = "label4";
  156. this.label4.Size = new System.Drawing.Size(216, 23);
  157. this.label4.TabIndex = 5;
  158. this.label4.Text = "输入要进行哈希加密的字符串2";
  159. // 
  160. // button3
  161. // 
  162. this.button3.Location = new System.Drawing.Point(24, 224);
  163. this.button3.Name = "button3";
  164. this.button3.TabIndex = 11;
  165. this.button3.Text = "比较哈希值";
  166. this.button3.Click += new System.EventHandler(this.button3_Click);
  167. // 
  168. // label5
  169. // 
  170. this.label5.Location = new System.Drawing.Point(128, 224);
  171. this.label5.Name = "label5";
  172. this.label5.Size = new System.Drawing.Size(240, 23);
  173. this.label5.TabIndex = 12;
  174. // 
  175. // Form1
  176. // 
  177. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  178. this.ClientSize = new System.Drawing.Size(520, 261);
  179. this.Controls.AddRange(new System.Windows.Forms.Control[] {
  180.   this.label5,
  181.   this.button3,
  182.   this.label3,
  183.   this.textBox4,
  184.   this.button2,
  185.   this.textBox3,
  186.   this.label4,
  187.   this.label2,
  188.   this.textBox2,
  189.   this.button1,
  190.   this.textBox1,
  191.   this.label1});
  192. this.Name = "Form1";
  193. this.Text = "哈希加密";
  194. this.ResumeLayout(false);
  195. }
  196. #endregion
  197. /// <summary>
  198. /// 应用程序的主入口点。
  199. /// </summary>
  200. [STAThread]
  201. static void Main() 
  202. {
  203. Application.Run(new Form1());
  204. }
  205. private void button1_Click(object sender, System.EventArgs e)
  206. {
  207.     
  208.      string  s=this.textBox1.Text;
  209. //将 s转换为字节数组
  210. Byte[] byteToHash = Encoding.Default.GetBytes(s);
  211. //使用直接创建的 MD5 类的实例创建 String 2 的哈希值
  212. byte[] hashvalue = (new MD5CryptoServiceProvider()).ComputeHash(byteToHash);
  213.             //将byte数组转化为string
  214. string hashString=BitConverter.ToString(hashvalue);
  215.     //输出结果
  216. this.textBox2.Text=hashString;
  217. }
  218. private void button2_Click(object sender, System.EventArgs e)
  219. {
  220. string  s=this.textBox3.Text;
  221.       //将 s转换为字节数组
  222. byte[] byteToHash = Encoding.Default.GetBytes(s);
  223. //使用由加密配置系统返回的 MD5 实例从 S创建哈希值
  224. byte[] hashvalue = ((HashAlgorithm) CryptoConfig.CreateFromName("MD5")).ComputeHash(byteToHash);
  225. //将byte数组转化为string
  226. string hashString=BitConverter.ToString(hashvalue);
  227.             //输出结果
  228. this.textBox4.Text=hashString;
  229. }
  230. private void button3_Click(object sender, System.EventArgs e)
  231. {
  232. //将string转化为byte数组
  233. byte[] hashvalue1=Encoding.Default.GetBytes(this.textBox2.Text);
  234. byte[] hashvalue2=Encoding.Default.GetBytes(this.textBox4.Text);
  235. if (hashvalue1.Length!=0 & hashvalue2.Length!=0)
  236. {
  237. //哈希值字节逐一比较
  238. int i=0;
  239. //判断是否相等的bool值
  240. bool same=true;
  241. do
  242. {
  243. if(hashvalue1[i]!=hashvalue2[i])
  244. {
  245. same=false;
  246. break;
  247. }
  248. i++;
  249. }
  250. while(i<hashvalue1.Length);
  251. //在label1上输出结果
  252. if(same) 
  253. this.label5.Text="字符串 1 和字符串 2 的哈希值相同!";
  254. else
  255. this.label5.Text="字符串 1 和字符串 2 的哈希值不同!";
  256. }
  257. }
  258. }
  259. }