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. AFNetworking 3.1.0 使用中某些知识点讲解

    # POST / GET  请求 /*! 首先要知道,POST请求不能被缓存,只有 GET 请求能被缓存.因为从数学的角度来讲,GET 的结果是 幂等 的,就好像字典里的 key 与 value 就是 ...

  2. Java NIO学习与记录(三): Scatter&Gather介绍及使用

     Scatter&Gather介绍及使用 上一篇知道了Buffer的工作机制,以及FileChannel的简单用法,这一篇介绍下 Scatter&Gather 1.Scatter(分散 ...

  3. windows phpinfo上不能找到memcache扩展 php版本5.6

    我的memcache用的我是memcached-win64-1.4.4-14.zip这个版本memcache扩展库下载地址:http://windows.php.net/downloads/pecl/ ...

  4. Mac 10.12安装图片切换工具ArcSoft Photo+

    说明:Mac自带的图片切换不能连续切换,这款工具和美图看看差不多. 下载: (链接: https://pan.baidu.com/s/1i5rLYzr 密码: 49dp)

  5. Mac 10.12安装流量监控软件Magican

    说明:Magican这家公司已经不维护了,但是软件是单机版的,可以正常使用,但是有些10.12的机器应该是无法看到每个进程的明细,总速度可以正常显示. 下载: (链接: https://pan.bai ...

  6. web操作文件的上传到服务器 并可下载 并且读取出来

    1.文件的上传-servlet实现文件上传---核心API—DiskFileItemFactory 一.文件上传概述 l  实现web开发中的文件上传功能,需完成如下二步操作: •    在web页面 ...

  7. 《LeetBook》LeetCode题解(1) : Two Sum[E]——哈希Map的应用

    001.Two Sum[E] Two SumE 题目 思路 1双重循环 2 排序 3 Hashmap 1.题目 Given an array of integers, return indices o ...

  8. Maven项目中Spring整合Mybatis

    Maven项目中Spring整合Mybatis 添加jar包依赖 spring需要的jar包依赖 <dependency> <groupId>org.springframewo ...

  9. 查找checked的checkbox和raido

    <fieldset id="checkArray"> <input type="checkbox" name="chk[]" ...

  10. 手动添加Git Bash到右键菜单

    1. 打开注册表. 2. 找到[HKEY_CLASSES_ROOT\Directory\Background]. 3. 在[Background]下如果没有[shell],则右键-新建项[shell] ...