MD5计算器

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计算器的更多相关文章
- [开源]入坑Qt,我的第一个小程序:MD5计算器
版权声明 --------- 本文仅在知乎与博客园发布.开发者为szx0427 MFC和Win32搞了好几年了,也算是懂了个皮毛,但是一直觉得用这两者开发软件都很麻烦,需要将大量的代码花费在UI等地方 ...
- MD5算法【计算文件和字符串的MD5值】
1. MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错).任何长度的任意内容都可以用MD5计算出散列值.MD5的前身:MD2.MD3.MD4.介绍工具:CalcMD5 ...
- MD5加密和sha加密
sha加密原理Algorithm)又叫安全哈希加密技术,是当今世界最先近的加密算法.主要用于文件身份识别.数字签名和口令加密等. 对于明文信息A,通过SHA1算法,生成一条160位长的识别码B.且明文 ...
- 【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改
Sqlite的应用场景 在判断是否使用存储格式为Sqlite模式的标准,我们的标准是内容只读.也就是说,除非发布者修改Sqlite内容,玩家只有读取的权限. 换个角度说,Sqlite里面的数据都是游戏 ...
- 基于Quick-cocos2d-x的资源更新方案 二
写在前面 又是12点半了,对于一个程序员来说,这是一个黄金时间,精力旺盛,我想,是最适合整理和分享一些思路的时候了. 自从上次写了 基于Quick-cocos2d-x的资源更新方案 同样可见quick ...
- ClickOnce部署(5):自定义安全权限
今天我们来探讨一下在ClickOnce部署中如何严格控制应用程序的权限. 演示应用 为了在下文中能更好地演示,我们先要做一个测试项目.也为了显得简单易懂,我使用最常用且最常见的WinForm项目,这是 ...
- 4、C#进阶:MD5加密、进程、线程、GDI+、XML、委托
MD5加密 将字符串进行加密,无法解密.网上的解密方式也都是在库里找,找不到也没有. 1 protected void Page_Load(object sender, EventArgs e) 2 ...
- MD5算法的原理与实现
***********************************************声明************************************************ 原创 ...
- Hash(MD5校验工具)
本站提供md5校验工具下载.Hash(md5校验工具)是一款小巧好用的哈希计算器,Hash支持文件拖放,速度很快,可以计算文件的MD5.SHA1.CRC32 的值.在论坛上.软件发布时经常用Hash ...
随机推荐
- k-近邻算法 python实现
必要的注释已经写在code里面了: import operator from numpy import* def init(): grp=array([[1.0,1.1],[1.0,1.0],[0,0 ...
- python学习,day4:装饰器的使用示例2
这个例子比较复杂 # coding=utf-8 # Author: RyAn Bi user,passwd = ' #输入用户名密码 def auth(auth_type): #装饰器第一层,确定鉴权 ...
- 基础概念——理解IP地址和域名
从程序员角度,可以把因特网看做是世界范围内的主机集合: 1)主机集合被映射为一组32位的IP地址. 2)这个IP地址被映射为一组称为因特网域名的标识符. 3)因特网主机上的进程能够通过连接和任何其他因 ...
- 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
开源一个Java Class实现Openfire登陆.推出.消息发送 N年前写的,希望对Openfire开发新手有帮助哦 import java.util.*; import java.io.*; ...
- springboot项目:Redis分布式锁的使用(模拟秒杀系统)
模拟秒杀系统: 第一步:编写Service package com.payease.service; /** * liuxiaoming * 2017-12-14 */ public interfac ...
- hibernate多对多单向关联
多对多单向,一个学生可以有多个老师,一个老师也可以教多个学生.老师可以找到他的学生,学生找不到教他的老师. 老师类Teacher: package com.oracle.hibernate; impo ...
- javac之向前引用
可以参考JLS7:https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.3.2.3 public class Test5 ...
- ehcache 集群使用 rmi方式 有图有真想
来源:http://www.tuicool.com/articles/MJzYZbR ehcache 有几种方式集群 ,rmi,jgroup还有jms:这里讲一下ehcache的使用 ehcache ...
- 解决图片浮动调节不了的问题(使用vertical-align属性)
vertical-align: middle; vertical-align 属性设置元素的垂直对齐方式. baseline 默认.元素放置在父元素的基线上.sub 垂直对齐文本的下标.super ...
- %notfound的理解——oracle存储过程 .
文档中的解释:It returns TRUE if an INSERT, UPDATE, or DELETE statement affected no rows, or a SELECT INTO ...