private void radioBtnFlie_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb = sender as RadioButton;
if (rb != null)
{
if (rb.Checked)
lblTip.Text = "文件:";
else
lblTip.Text = "字符串:";
}
}

RadioButton切换

private void txtStr_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{//拖进来的是文件
e.Effect = DragDropEffects.Link;
txtStr.Cursor = Cursors.Arrow;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void txtStr_DragDrop(object sender, DragEventArgs e)
{
string value = (e.Data.GetData(DataFormats.FileDrop) as System.Array).GetValue().ToString();
txtStr.Cursor = Cursors.IBeam;
txtStr.Text = value;
//文件转MD5
StringBuilder sbResult = new StringBuilder();
using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
{
byte[] byteArr = File.ReadAllBytes(value);
byte[] bytes = md5.ComputeHash(byteArr);
for (int i = ; i < bytes.Length; i++)
{
sbResult.Append(bytes[i].ToString("x2"));
}
}
txtMD5.Text = sbResult.ToString();
}

鼠标拖动文件到第一个大文本框触发事件-将文件转换为MD5

private void txtStr_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\x1')
{//Ctrl+A-全选
(sender as TextBox).SelectAll();
e.Handled = true;
}
}

第一个大文本框Ctrl+A全选

private void txtStr_KeyUp(object sender, KeyEventArgs e)
{
string str = txtStr.Text;
if (str.Length > && radioBtnString.Checked)
{
//字符串转MD5
byte[] bytes = Encoding.UTF8.GetBytes(str);
using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
{
byte[] md5Bytes = md5.ComputeHash(bytes);
StringBuilder sbResult = new StringBuilder();
for (int i = ; i < md5Bytes.Length; i++)
{
//十六进制占两位
sbResult.Append(md5Bytes[i].ToString("x2"));
}
txtMD5.Text = sbResult.ToString();
}
}
}

第一个大文本框按键松开后的事件(Ctrl+V或输入字符串)

private void btnCompare_Click(object sender, EventArgs e)
{
//比较MD5值
string text1 = txtMD5.Text.Trim();
string text2 = txtRefer.Text.Trim();
if (text1 == text2 && text1.Length > )
{
MessageBox.Show("MD5值相同");
}
else
{
MessageBox.Show("MD5值不相同");
}
}

按钮比较MD5事件

MD5计算器的更多相关文章

  1. [开源]入坑Qt,我的第一个小程序:MD5计算器

    版权声明 --------- 本文仅在知乎与博客园发布.开发者为szx0427 MFC和Win32搞了好几年了,也算是懂了个皮毛,但是一直觉得用这两者开发软件都很麻烦,需要将大量的代码花费在UI等地方 ...

  2. MD5算法【计算文件和字符串的MD5值】

    1. MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错).任何长度的任意内容都可以用MD5计算出散列值.MD5的前身:MD2.MD3.MD4.介绍工具:CalcMD5 ...

  3. MD5加密和sha加密

    sha加密原理Algorithm)又叫安全哈希加密技术,是当今世界最先近的加密算法.主要用于文件身份识别.数字签名和口令加密等. 对于明文信息A,通过SHA1算法,生成一条160位长的识别码B.且明文 ...

  4. 【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改

    Sqlite的应用场景 在判断是否使用存储格式为Sqlite模式的标准,我们的标准是内容只读.也就是说,除非发布者修改Sqlite内容,玩家只有读取的权限. 换个角度说,Sqlite里面的数据都是游戏 ...

  5. 基于Quick-cocos2d-x的资源更新方案 二

    写在前面 又是12点半了,对于一个程序员来说,这是一个黄金时间,精力旺盛,我想,是最适合整理和分享一些思路的时候了. 自从上次写了 基于Quick-cocos2d-x的资源更新方案 同样可见quick ...

  6. ClickOnce部署(5):自定义安全权限

    今天我们来探讨一下在ClickOnce部署中如何严格控制应用程序的权限. 演示应用 为了在下文中能更好地演示,我们先要做一个测试项目.也为了显得简单易懂,我使用最常用且最常见的WinForm项目,这是 ...

  7. 4、C#进阶:MD5加密、进程、线程、GDI+、XML、委托

    MD5加密 将字符串进行加密,无法解密.网上的解密方式也都是在库里找,找不到也没有. 1 protected void Page_Load(object sender, EventArgs e) 2 ...

  8. MD5算法的原理与实现

    ***********************************************声明************************************************ 原创 ...

  9. Hash(MD5校验工具)

    本站提供md5校验工具下载.Hash(md5校验工具)是一款小巧好用的哈希计算器,Hash支持文件拖放,速度很快,可以计算文件的MD5.SHA1.CRC32 的值.在论坛上.软件发布时经常用Hash ...

随机推荐

  1. ES6之新增let命令使用方法

    let命令的用法 let是es6中的声明一个变量的命令,只在它声明的代码块中有效,出了这个代码块就会报错.也非常适合for循环,在循环中i的值只在循环语句中生效,在外边取不到的. var命令声明的是一 ...

  2. Python PIL库学习笔记

    1.PIL简介 Python Imaging Library(缩写为PIL)(在新的版本中被称为Pillow)是Python编程语言的开源库,它增加了对打开,操作和保存许多不同图像文件格式的支持.它适 ...

  3. 新手入门贴之基于 python 语言的接口自动化 demo 小实战

    大家好,我是正在学习接口测试的菜鸟.近期通过自己的学习,完成了一个关于测试接口的接口自动化demo.下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在excel中.因为只是小 ...

  4. error occurred during initialization of vm

    虚拟机无法进行如下分配 : -Xmx2048m -XX:MaxPermSize=512m 原因是我的老爷机总共内存只有3G: settings - > 搜索VM ->找到Compiler ...

  5. This operation is not available unless admin mode is enabled: FLUSHDB

    报错:  This operation is not available unless admin mode is enabled: FLUSHDB 参考内容: https://www.cnblogs ...

  6. OpenERP 干掉 产品计量单位中的 search more 和 create and edit

    实际操作中特别容易点错而新建了重复的单位,通过下边的方法可以将“search more”和 “create and edit”干掉 在新继承product.product的模块中,修改xml文件 这样 ...

  7. 用idea搭建一个简单的SSM的Demo

    1.新建一个maven  web app项目 结构如下 resources的资源文件如下 applicationContext.xml 的配置 <?xml version="1.0&q ...

  8. Linux 操作系统常用的三种流012

    Linux 操作系统常用的三种流: 0 标准输入流 1 标准输出流 2 标准错误流 通常在写脚本启动程序,写log时候,会出现如下写法: nohup commod > log.txt 2> ...

  9. C 扩展库 - mysql API

    MySQL API C API Data Structures MYSQL This structure represents handler for one database connection. ...

  10. 入门系列之在Ubuntu上安装Drone持续集成环境

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小铁匠米兰的v 发表于云+社区专栏 介绍 Drone是一个流行的持续集成和交付平台.它集成了许多流行的版本控制存储库服务,如GitHu ...