• MD5加密 C#窗体应用程序


    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算法加密密码
    ///
    
    /// <summary>
    /// MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。
    /// 是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
    /// 将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理。
    /// </summary>
    
    ///
    /// 原理:
    /// 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<md5Data.Length; i++)   // 遍历字节数组
                {
                    NewPassword += md5Data[i].ToString("x").PadLeft(2, '0'); // 对遍历到的字节加密
                }
                textBox2.Text = NewPassword;
            }
    
            private void aboutToolStripMenuItem_Click(object sender, EventArgs e) // About菜单项
            {
                Form2 frm = new Form2();
                frm.ShowDialog();
            }
        }
    }
    




  • 相关阅读:
    CentOS配置sshd
    求逆元 HDU 2516
    求逆元
    二分图的最大匹配
    博弈1
    几何多边形面积交模板
    LAMP服务器的搭建
    扩展欧几里得
    cf780c
    利用栈的逆波兰表达式
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/9079825.html
Copyright © 2020-2023  润新知