Form1窗体设计:2个Label、2个TextBox、1个Button、1个菜单项
Form2:“About”菜单项的信息
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Security.Cryptography; // MD5类位于该命名空间下////// 背景:/// 2015年“高教杯”全国大学生数学建模比赛涉及论文的MD5码/// 碰巧看到相关C#实现MD5算法加密密码///////// MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。/// 是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。/// 将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理。/// ////// 原理:/// MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,/// 经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。/// namespace 仿MD5校验{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string Password = textBox1.Text.ToString(); // 获取用户输入的密码 MD5 md5 = new MD5CryptoServiceProvider(); // 创建MD5对象,初始化 byte[] Data = System.Text.Encoding.Default.GetBytes(Password); // 将字符编码为一个字节序列 byte[] md5Data = md5.ComputeHash(Data); // 计算Data字节数组的哈希值 md5.Clear(); // 清空MD5对象,“释放资源”以前没怎么注意到 string NewPassword = ""; // 记录加密后的MD5码 for(int i=0; i