day20 二十、加密模块、操作配置文件、操作shell命令、xml模块
一、加密模块
1、hashlib模块:加密
①有解密的加密方式
②无解密的加密方式:碰撞检查
-- 1)不同数据加密后的结果一定不一致
-- 2)相同数据的加密结果一定是一致的
import hashlib
user_map = {}
def lock(msg):
cipher = hashlib.md5(msg.encode('utf-8'))
return cipher.hexdigest()
def regisrer():
print('注册页面')
user = input('user:>>>')
pwd = input('pwd:>>>')
lock_pwd = lock(pwd)
user_map[user] = lock_pwd
print(user_map)
regisrer()
# {'abc': '202cb962ac59075b964b07152d234b70'}
def login():
print('登录页面')
user = input('user:>>>')
pwd = input('pwd:>>>')
if user in user_map:
lock_pwd = lock(pwd)
if user_map[user] == lock_pwd:
print('登录成功')
else:
print('登录失败')
else:
print('账号不存在')
login()
③基本使用
# part1
cipher = hashlib.md5('要被加密的字符串'.encode('utf-8'))
print(cipher.hexdigest())
cipher = hashlib.md5('abc'.encode('utf-8'))
print(cipher.hexdigest()) # 900150983cd24fb0d6963f7d28e17f72
cipher = hashlib.md5('a'.encode('utf-8'))
cipher.update('b'.encode('utf-8'))
cipher.update('c'.encode('utf-8'))
print(cipher.hexdigest()) # 900150983cd24fb0d6963f7d28e17f72
# part2
# 加盐 add salt
cipher = hashlib.md5()
msg = input('msg:>>>')
cipher.update('前盐'.encode('utf-8'))
cipher.update(msg.encode('utf-8'))
cipher.update('后烟'.encode('utf-8'))
print(cipher.hexdigest())
print(hashlib.md5('前盐123后盐'.encode('utf-8')).hexdigest())
# 597485af9593db98cc73b79738cbb3ea
# part3
cipher = hashlib.sha3_512('abc呵呵'.encode('utf-8'))
print(cipher.hexdigest())
2、hmac模块:
①加密(必须加盐)
cipher = hmac.new('盐'.encode('utf-8'))
cipher.update('数据'.encode('utf-8'))
print(cipher.hexdigest()) # 15b98c09b1c80b37cd8dc2b897b9b6d4
②和md5的区别:
hashlib.md5():
可以有初始参数,可以没有初始参数
可以通过update再添加新内容
hmac.new():
必须有初始参数
可以通过update再添加新内容
cipher = hmac.new('盐'.encode('utf-8'))
cipher.update('数据'.encode('utf-8'))
print(cipher.hexdigest()) # 15b98c09b1c80b37cd8dc2b897b9b6d4
二、configparser模块:操作配置文件
三、subprocess模块:操作shell命令
四、xlrd模块:excel读
五、xlwt模块:excel写
六、xml模块
day20 二十、加密模块、操作配置文件、操作shell命令、xml模块的更多相关文章
- HBase总结(二十)HBase经常使用shell命令具体说明
进入hbase shell console $HBASE_HOME/bin/hbase shell 假设有kerberos认证,须要事先使用对应的keytab进行一下认证(使用kinit命令),认证成 ...
- 第三百二十六节,web爬虫,scrapy模块,解决重复ur——自动递归url
第三百二十六节,web爬虫,scrapy模块,解决重复url——自动递归url 一般抓取过的url不重复抓取,那么就需要记录url,判断当前URL如果在记录里说明已经抓取过了,如果不存在说明没抓取过 ...
- 第三百二十四节,web爬虫,scrapy模块介绍与使用
第三百二十四节,web爬虫,scrapy模块介绍与使用 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了 ...
- 第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签 标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需 ...
- python之commands和subprocess入门介绍(可执行shell命令的模块)
一.commands模块 1.介绍 当我们使用Python进行编码的时候,但是又想运行一些shell命令,去创建文件夹.移动文件等等操作时,我们可以使用一些Python库去执行shell命令. com ...
- AngularJS进阶(二十六)实现分页操作
JS实现分页操作 前言 项目开发过程中,进行查询操作时有可能会检索出大量的满足条件的查询结果.在一页中显示全部查询结果会降低用户的体验感,故需要实现分页显示效果.受前面"JS实现时间选择插件 ...
- Python学习(二十九)—— pymysql操作数据库优化
转载自:http://www.cnblogs.com/liwenzhou/articles/8283687.html 我们之前使用pymysql操作数据库的操作都是写死在视图函数中的,并且很多都是重复 ...
- 二十六、Nodejs 操作 MongoDb 数据库
一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...
- Ionic Js二十:选项卡栏操作
ion-tabs ion-tabs 是有一组页面选项卡组成的选项卡栏.可以通过点击选项来切换页面. 对于 iOS,它会出现在屏幕的底部,Android会出现在屏幕的顶部(导航栏下面). 用法 < ...
随机推荐
- ChartControl控件0和null的效果
DevExpress的ChartControl虽然还不能完全代替Office图表(例如它暂时不支持添加数据表),但它算同类产品中相当优秀的了,下面是对0值和空值的处理. DataTable zeroD ...
- iOS scrollsToTop属性失效
点击状态栏返回顶部失效,是因为scrollView的scrollsToTop属性失效 (继承于scrollView的tableView collectionView也算). 这个属性默认是开启的,然而 ...
- string与stringBuffer区别
string 的 “+” 操作就是根据 StringBuilder (或 StringBuffer )类及其 append 方法实现的. String 不可变其实就是说一个 String 对象创建之后 ...
- sql 有条件计数
select InstitutionID=LEFT(InstitutionID,9), Irregularities_Type=sum(CASE WHEN Irregularities_Type> ...
- Java之Servlet
Servlet规范了JavaWeb项目的结构Servlet的规范约束了服务器如何来实现Servlet规范,如何解析JavaWeb项目的结构. Java就是通过接口来约束 Servlet规范的jar就在 ...
- Linux内存、性能诊断中vmstat命令的详解
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存 交换情况,IO读写情况.相比top,通过vmstat可以看到 ...
- 程序猿必备的10款超有趣的SVG绘制动画赏析
SVG作为时下比较新颖的技术标准,已经建立了很多基于SVG的前端项目.由于SVG在绘制路径上非常灵活,我们将很多网页上的元素使用SVG来绘制而成,有各种人物.小图标.小动画等等.今天我们收集了10个非 ...
- 【iCore4 双核心板_ARM】例程三十三:SD_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...
- oracle sql 获取本季度所有月份,上季度所有月份
上季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q A FROM DUAL) CONNECT ; 本季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q FRO ...
- 消息中间件系列一:入门、JMS规范、ActiveMQ使用
一.入门 1. 消息中间件的定义 没有标准定义,一般认为,采用消息传送机制/消息队列 的中间件技术,进行数据交流,用在分布式系统的集成 2. 为什么要用消息中间件 解决分布式系统之间消息的传递.电商场 ...