博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python-加密
阅读量:5242 次
发布时间:2019-06-14

本文共 1638 字,大约阅读时间需要 5 分钟。

python中hashlib提供了常见的摘要算法,如MD5,SHA1等等

什么是摘要算法呢?摘要算法又称哈希算法\算列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示),主要用于防篡改,可以不送传明文

md5是一种不可逆的加密算法,目前也是最牢靠的算法之一,它对任何字符串都可以成一段唯一的固定长度的代码

sha1是由美国标准技术局发布的,也是目前最先进的加密技术,它是基于md5改进而来

des是对称加密算法

  安装pyDES.py到python安装目录下的Lib中

cmd命令行,进入到目录,招到setup.py文件,执行命令:python setup.py install

cmd ->

d: ->
cd C:\Python33\Lib\pyDes-2.0.1
python setup.py install

 

 

三种加密方式

import hashlib #MD5和sha1算法import base64from pyDes import * #把pydes压缩包里的pyDes.py拷贝到python安装目录下的Lib中def md5_encode(data):    #调用md5算法,用一个变量接收    m = hashlib.md5()    #调用update对传来的data进行数据加密,encode utf-8的编码后才能用update    m.update(data.encode('utf-8'))    return m.hexdigest() #经过特殊处理之后以字符串形式返回def sha1_encode(data):    sha1 = hashlib.sha1()    sha1.update(data.encode('utf-8'))    return sha1.hexdigest()#DES加密'''pyDes.des(key,[mode],[IV],[pad],[padmode])参数的意思分别如下:key 加密密钥.长度为8位,必选mode 加密方式.ECB(默认),CBC(安全性好于前者)IV  初始字节数(长度为8位),如果你选择的加密方式为CBC就必须有这个参数,否则可以没有pad 加密时,将该字符添加到数据块的结尾;解密时,将删除从最后一个的往前8位padmode PAD_NORMAL\PAD_PKCS5,当选择前者时必须设置pad'''def des_encode(data):    #设置加密的规范    k = des("xqtest66",padmode = PAD_PKCS5)    #k = des("xqtest66",CBC,"goodluck",pad = "hahahehe",padmode = PAD_NORMAL)            #encrypt来加密我的数据,然后进行base64编码    encodeStr = base64.b64encode(k.encrypt(data))    return encodeStrdata = "i love pythoon"result1 = md5_encode(data)print("md5加密:",result1)result2 = sha1_encode(data)print("sha1加密:",result2)result3 = des_encode(data)print("des加密:",result3)

结果:

md5加密: a6f3ba84c70f394fc4e7d87bc467cd4e

sha1加密: 4b714ecbad5e289593aa21412da0703e91d011e0
des加密: b'oa/KM3bfrxyOOz7m9DU2rA=='

 

转载于:https://www.cnblogs.com/R-bear/p/7046222.html

你可能感兴趣的文章
Vue
查看>>
python-三级菜单和购物车程序
查看>>
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
水平垂直居中
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>