python模块——hashlib模块(简单文件摘要算法实现)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "loki" # Usage: hashlib模块 import hashlib
import time # wrapper function calc length and use time
def len_type_tools(res):
def wrapper(*args, **kwargs):
cur_time = time.time()
len_res = len(res(*args, **kwargs))
result = res(*args, **kwargs)
end_time = time.time() - cur_time
print('Primary HASH result length is {0}, use time {1:.2f}'.format(len_res, end_time))
return result
return wrapper def menu_list():
func_list = {}
for item in hashlib.__dict__:
if str(item).startswith("sha") or str(item).startswith("md5"):
func_list[item] = hashlib.__dict__[item]
return func_list @len_type_tools
def algol(data, num):
if num != 1:
user_choose = menu_list()[data[1]]()
user_choose.update(data[0].encode("utf-8"))
return user_choose.hexdigest()
user_choose = menu_list()["md5"]()
user_choose.update(data[0].encode("utf-8"))
return user_choose.hexdigest() def file_read(path):
with open(r"{}".format(path), 'rb') as file_info:
file_bin = file_info.read()
return file_bin def main():
"""
.::hashlib small tools::.
by: loki 2018-06-25
format:
>> <file_path> [algol]
algol:
md5(default)
sha1
sha224
sha256
sha384
sha512
example:
>> c:\\test.txt sha1
:return hash_value
"""
print(main.__doc__)
file_path = input('>>').strip()
file_path = file_path.split()
argument_num = len(file_path)
print(algol(file_path, argument_num)) if __name__ == '__main__':
main()
time.sleep(15)
小结:
再这个hashlib模块学习中,顺便回顾了下装饰器。也运用了下魔术方法__dict__功能
python模块——hashlib模块(简单文件摘要算法实现)的更多相关文章
- 通过python的hashlib模块计算一个文件的MD5值
Python的hashlib提供了很多摘要算法,如MD5,SHA1等常用算法. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(如MD5值 ...
- 《Python》hashlib模块、configparser模块、logging模块
一.hashlib模块 Python的hashlib模块中提供了常见的摘要算法,如md5,sha1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的字符串(通 ...
- Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块
Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- python中hashlib模块用法示例
python中hashlib模块用法示例 我们以前介绍过一篇Python加密的文章:Python 加密的实例详解.今天我们看看python中hashlib模块用法示例,具体如下. hashlib ha ...
- python模块: hashlib模块, configparse模块, logging模块,collections模块
一. hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用 ...
- python笔记7 logging模块 hashlib模块 异常处理 datetime模块 shutil模块 xml模块(了解)
logging模块 日志就是记录一些信息,方便查询或者辅助开发 记录文件,显示屏幕 低配日志, 只能写入文件或者屏幕输出 屏幕输出 import logging logging.debug('调试模式 ...
- python基础--hashlib模块
hashlib模块用于加密操作,代替了md5和sha模块, 主要提供SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法. # -*- coding:utf-8 - ...
- python day 8: re模块补充,导入模块,hashlib模块,字符串格式化,模块知识拾遗,requests模块初识
目录 python day 8 1. re模块补充 2. import模块导入 3. os模块 4. hashlib模块 5. 字符串格式:百分号法与format方法 6. 模块知识拾遗 7. req ...
随机推荐
- Asp.net MVC 通过自定义ControllerFactory实现构造器注入
一.重写ControllerFactory的GetControllerInstance ControllerFactory是asp.net中用于在运行时构造Controller的工厂 ,默认使用的工厂 ...
- BP神经网络的Java实现(转载)
神经网络的计算过程 神经网络结构如下图所示,最左边的是输入层,最右边的是输出层,中间是多个隐含层,隐含层和输出层的每个神经节点,都是由上一层节点乘以其权重累加得到,标上“+1”的圆圈为截距项b,对输入 ...
- presto 0.166概述
presto是什么 是Facebook开源的,完全基于内存的并⾏计算,分布式SQL交互式查询引擎 是一种Massively parallel processing (MPP)架构,多个节点管道式执⾏ ...
- 在notepad++里面使用正则表达式替换掉所有行逗号前面内容
需求:在notepad++里面使用正则表达式替换掉所有行逗号前面内容,一文本内容如下(只贴一小部分,实际上N多): 级别,層級程序,程式插件,外掛程式鼠标,滑鼠打印,列印打开,開啟博客,部落格联系,聯 ...
- Python入门之Python的单例模式和元类
一.单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在. 当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上 ...
- PHP多进程并行执行php脚本
<?php //fork.php $cmds = [ '/data/wwwroot/default/test1.php', '/data/wwwroot/default/test2.php', ...
- python的os模块和sys模块
os模块 os.getcwd() 获取当前的工作目录 os.chdir('绝对路径/相对于当前工作目录的路径') 改变工作目录,相当于shell的cd命令,例如Windows平台下os.chdir ...
- Lombok让pojo变得更优雅
Lombok 采取注解的形式,标记在pojo上面,在编译后,自动生成相应的方法,像get.set.构造方法等都可以注解一键生成. 引入jar包: <dependency> <grou ...
- Linux 虚拟机安装vmware tools
Linux Vmware tools安装步骤 1 在 vSphere Client 清单中,右键单击虚拟机,然后选择电源 > 开启. 2 单击控制台选项卡以确定客户机操作系统启动成功,并在需 ...
- 01: vue.js安装
1.1 vue.js安装与基本使用 官网:https://cn.vuejs.org/ 1.使用之前,我们先来掌握3个东西是用来干什么的 1. npm: Nodejs下的包管理器. 2. webpack ...