python加密

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 base64 from 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 encodeStr
  
  data = "i love pythoon" result1 = md5_encode(data) print("md5加密:",result1)
  
  result2 = sha1_encode(data) print("sha1加密:",result2)
  
  result3 = des_encode(data) print("des加密:",result3)</pre>

结果:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SH...
    LittlePy阅读 656评论 0 0
  • AES是对称加密,同一个密钥同时用来加密和解密. AES加密数据块分组长度必须为128比特,密钥长度可以是128比...
    yytester阅读 4,357评论 0 1
  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 3,080评论 0 14
  • 文件句柄数限制### 两个事实:1)*nix系统中,一切都用文件来描述。2)操作系统会对单个进程打开的最大“文件”...
    11bansakana阅读 479评论 0 0
  • 公司:宁波大发化纤有限公司 姓名:陆小燕 期数:六项精进234期学员 组号:利他三组 [日精进打卡第31天] [知...
    牛妈牛妈阅读 163评论 0 0