zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
    




  • 相关阅读:
    mvc 数据验证金钱格式decimal格式验证
    VMware与CentOS的安装与Linux简单指令
    rbac组件引用
    Django--CRM--菜单展示, 删除合并, 权限展示
    Django--CRM--菜单排序等
    Django--CRM--一级, 二级 菜单表
    Django--权限信息操作
    Django--CRM--modelformset的用法
    Django--CRM--QueryDict, 模糊搜索, 加行级锁
    Django--CRM-客户列表展示, 分页
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/9079825.html
Copyright © 2011-2022 走看看