对下载的文件使用hash校验验证文件完整性

 1 import hashlib
2 def md5():
3 md5_value = hashlib.md5()
4 with open('C:\Intel\S6720HI-V200R019C10SPC500.cc','rb') as f:
5 while True:
6 data = f.read(2048)
7 if not data:
8 break
9 md5_value.update(data)
10 print (md5_value.hexdigest())
11 md5()

也可用于前端页面注册用户信息,加密发送给后端

 1 import hashlib
2 #创建对象,加盐
3 has = hashlib.md5('奔波的驱魔人'.encode('utf-8'))
4 pwd = input('请输入密码>>>')
5 #传入需要加密的字段
6 has.update(pwd.encode('utf-8'))
7 print(has.hexdigest())
8
9 #以上代码md5值等同于以下
10 has = hashlib.md5()
11 pwd = input('请输入密码>>>')
12 #传入需要加密的字段
13 has.update('奔波的驱魔人'.encode('utf-8'))
14 has.update(pwd.encode('utf-8'))
15 print(has.hexdigest())

base64编码与解码

1 import base64
2 a = 'vx:cs19911124'
3 a_encode = base64.b64encode(a.encode('utf-8'))
4 print(a_encode.decode('utf-8'))
5 b_decode = base64.b64decode(a_encode).decode('utf-8')
6 print(b_decode)

封装进 tkinter

 1 import tkinter
2 from tkinter import filedialog
3 import hashlib,base64
4 class dark:
5 def __init__(self):
6 self.init_window = tkinter.Tk()
7 self.init_window.title('MD5转换工具')
8 self.init_window.geometry('1068x681+10+10')
9 def run(self):
10 self.left_lable = tkinter.Label(self.init_window,text='原始数据')
11 self.left_lable.grid(row=0,column=0)
12 self.right_lable = tkinter.Label(self.init_window,text='转换后数据')
13 self.right_lable.grid(row=0,column=12)
14 self.source_text = tkinter.Text(self.init_window,height=48,width=65)
15 self.source_text.grid(row=1,column=0,rowspan=11,columnspan=10)
16 self.change_text = tkinter.Text(self.init_window,height=48,width=65)
17 self.change_text.grid(row=1,rowspan=11,column=12,columnspan=10)
18 self.button = tkinter.Button(self.init_window,text='文件md5校验',command=self.filetomd5)
19 self.button.grid(row=4,column=11)
20 self.button = tkinter.Button(self.init_window,text='字符串转MD5',command=self.changetomd5)
21 self.button.grid(row=5,column=11)
22 self.button2 = tkinter.Button(self.init_window,text='字符串转BASE64',command=self.strtobase64)
23 self.button2.grid(row=7,column=11)
24 self.button3 = tkinter.Button(self.init_window,text='BASE64转字符串',command=self.base64tostr)
25 self.button3.grid(row=8,column=11)
26 self.init_window.mainloop()
27 def changetomd5(self):
28 source = self.source_text.get(1.0,tkinter.END).strip().replace("\n","").encode()
29 changemd5 = hashlib.md5()
30 changemd5.update(source)
31 ret = changemd5.hexdigest()
32 self.insert(ret)
33 def strtobase64(self):
34 source = self.source_text.get(1.0,tkinter.END).strip().replace("\n","").encode()
35 change_base64 = base64.b64encode(source).decode()
36 self.insert(change_base64)
37 def base64tostr(self):
38 source = self.source_text.get(1.0,tkinter.END).strip().replace("\n","").encode()
39 change_base64 = base64.b64decode(source).decode()
40 self.insert(change_base64)
41 def filetomd5(self):
42 selectFile = filedialog.askopenfilename()
43 md5_value = hashlib.md5()
44 try:
45 with open(selectFile,'rb') as f:
46 while True:
47 data = f.read(2048)
48 if not data:
49 break
50 md5_value.update(data)
51 self.insert(md5_value.hexdigest())
52 except:
53 pass
54 def insert(self,data):
55 self.change_text.delete(1.0,tkinter.END)
56 self.change_text.insert(1.0,data)
57 obj = dark()
58 obj.run()

打包成exe程序,运行效果如下

链接: https://pan.baidu.com/s/1YGz-jP77wcHAk-qiz5PuOw 提取码: 3rqq

windows 文件hash校验,字符串加密,base64转换工具的更多相关文章

  1. nodejs对字符串进行base64转换和解析

    nodejs不支持使用atob和btoa 进行字符串base64转换,转换方法如下: // 转为base64 var strToBase64 = new Buffer('aaabbbccc').toS ...

  2. java util - base64转换工具

    测试代码 package cn.java.codec.base64; public class Test { public static void main(String[] args) { Stri ...

  3. 利用base64函数,对文件进行转码加密

    设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的内容就是通过base64转码后传输的.Base64-encoded后, 数据要比原始数据多占用 33% 左右的空间. ...

  4. [DEncrypt] MySecurity--安全加密/Base64/文件加密 (转载)

    点击下载 MySecurity.zip 这个类是关于加密,解密的操作,文件的一些高级操作1.MySecurity  加密字符串2.MySecurity  加密字符串 密钥为系统默认 012345678 ...

  5. iOS使用MD5 - 字符串加密至MD5&获取文件MD5

    iOS 字符串加密至MD5 + (NSString *) md5:(NSString *)str { unsigned ]; CC_MD5( cStr, strlen(cStr), result ); ...

  6. 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)

    说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...

  7. iOS字符串加密至MD5&及获取文件MD5

    iOS 字符串加密至MD5 #import <CommonCrypto/CommonDigest.h> + (NSString *) md5:(NSString *)str { const ...

  8. java实现图片与base64字符串之间的转换

    package cn.com; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOEx ...

  9. 将图片文件转化为字节数组字符串,并对其进行Base64编码处理,以及对字节数组字符串进行Base64解码并生成图片

    实际开发中涉及图片上传并且量比较大的时候一般处理方式有三种 1.直接保存到项目中 最老土直接方法,也是最不适用的方法,量大对后期部署很不方便 2.直接保存到指定路径的服务器上.需要时候在获取,这种方式 ...

随机推荐

  1. 学习Git(二)

    常用命令 git add 添加 git status 查看状态 git status -s 状态概览 git diff 对比 git diff --staged 对比暂存区 git commit 提交 ...

  2. 块级格式化上下文(BFC)

    一.什么是BFC 具有BFC属性的元素也属于普通流定位方式,与普通容器没有什么区别,但是在功能上,具有BFC的元素可以看做是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且具有普通容 ...

  3. CSS3渐变效果工具

    推荐一个css3渐变效果工具,觉得有帮助的可以收藏下. 工具链接 CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡.CSS3 定义了两种类型的渐变(gradient ...

  4. Canvas 与 SVG

    什么是SVG? 引用w3c的一段话就是: SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 ...

  5. Chrome 53 Beta一些有意思的改动

    原文链接: http://blog.chromium.org/2016...译者:Icarus邮箱:xdlrt0111@163.com 如果没有特殊说明的话,以下都是应用在Android,Chrome ...

  6. 浅谈Nodejs应用的主文件index.js的组成部分

    前言 Node妹子的问世,着实让我们前端攻城狮兴奋了一把,尤其本屌听说Javascript可以写服务端后,兴奋的像是看到了二次元萝莉的胖子...(●'◡'●).呃哼...YY先到这里,原谅本屌是个二次 ...

  7. Codepen 每日精选(2018-4-22)

    按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以打开原始页面. 图片切换效果https://codepen.io/AlikinVV/f... 基于 dom 的可换肤的自行 ...

  8. 【Android开发】Bitmap的质量压缩法

    public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputS ...

  9. Restful-API和传统API的对比

    阮一峰 RestFul-API 详解链接:  http://www.ruanyifeng.com/blog/2014/05/restful_api.html 举例,传统api设计: 举例,RestFu ...

  10. JavaScript 中 empty、remove 和 detach的区别

    内容 empty.remove 和 detach的区别 jQuery 操作 DOM 之删除节点 方法名 元素所绑定的事件及数据是否也被移除 作用 $(selector).empty() 是 从被选元素 ...