一、概述:

  摘要算法主要特征是加密过程不需要密钥,并且加密的数据无法解密,只有输入相同的明文数据经过相同的摘要算法才能得到相同的密文。摘要算法主要应用在“数字签名”领域。接下来会讲述RSA公司的MD5算法和SHA-1算法。

二、原理:

  通过一个函数,把任意长度的数据转换成一个长度固定的数据串(通常用16进制的字符串表示)

三、MD5算法:

  MD5算法最常见的摘要算法,生成速度快,生成结果是128位,通常用32位的16进制字符串表示。

  python中使用:

  

四、SHA-1算法:

  调用与MD5完全一样,SHA1通常是160字节,通常用40位16进制字符串表示

  Python中使用:

  

五、应用:  

  任何允许用户登录的网站都会存储用户登录的用户名和密码,那么密码一般存储的是原密码的摘要值,正确保存口令方式不是存储明文内容,而是存储口令的摘要;当用户登录时,首先计算用户输入明文口令的摘要,和数据库对比,如果一致则说明口令正确,否则一定错误。

六、注意:

  1、越安全的算法不仅越慢,而且摘要会越长

  2、有可能两个不同数据通过hashlib算法后得到了相同的摘要,因为摘要算法是将无限多的数据映射到有限的集合中。如果两个摘要数据相同,称之为碰撞。出现几率极其小。

python 摘要算法的更多相关文章

  1. Python 摘要算法hashlib 与hmac

    参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017686752491744 摘要算法(也成为哈希算法)是用来防篡改的,因为我们的即使 ...

  2. MD5( 信息摘要算法)的概念原理及python代码的实现

    简述: message-digest algorithm 5(信息-摘要算法).经常说的“MD5加密”,就是它→信息-摘要算法. md5,其实就是一种算法.可以将一个字符串,或文件,或压缩包,执行md ...

  3. python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等) #http://www.c ...

  4. Python模块——HashLib(摘要算法)与base64

    摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...

  5. Python常用模块-摘要算法(hashlib)

    Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 #!/usr/bin/env p ...

  6. python模块——hashlib模块(简单文件摘要算法实现)

    #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = "loki" # Usage: hashlib模块 import ...

  7. python实现scrapy爬取图片到本地时的sha1摘要算法文件名

    2017-03-29 Scrapy爬图片到本地应该会给图片自动生成sha1摘要算法文件名,我第一次用scrapy也不清楚太多,就在程序里自己写了一段实现这一功能的代码.需import hashlib ...

  8. Python中摘要算法MD5,SHA1讲解

    摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示).摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要di ...

  9. Python用摘要算法生成token及检验token

    原创作者:希希大队长,blog:https://cnblogs.com/dongxixi/ # 基础版,不依赖环境 import time import base64 import hashlib c ...

随机推荐

  1. c语言进制转化

    #include <stdio.h> // 进制转化 int main(void) { ; ; int i3 = 0x32C; printf( printf( printf("十 ...

  2. 06_Jedis完成MySQL的条件查询案例

    [概述] 假设现在有一个User表,其中有id,name,age,sex等字段,完成如下要求的SQL语句为: 1.查找所有age=18 的User ; 2.查找所有sex="M"( ...

  3. Android 笔记之 Android 系统架构

    Android笔记之Android系统架构 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: ...

  4. LeAndroid招聘汇总

    招聘Android通讯开发经理 工作地点:北京-朝阳区 工作经验:3-5年 薪资范围:¥ 面议 学历要求:本科以上 职责描述1.负责设计指导开发和优化Android网络通讯相关功能:2.负责设计指导开 ...

  5. DLRS(深度学习应用于推荐系统论文汇总--2017年8月整理)

    Recommender Systems with Deep Learning Alessandro:ADAAlessandro Suglia, Claudio Greco, Cataldo Musto ...

  6. 面向对象设计之------Is-A(继承关系)、Has-A(合成关系,组合关系)和Use-A(依赖关系)(转)

    原文url:http://blog.csdn.net/loveyou128144/article/details/4749576 @Is-A,Has-A,Use-A则是用来描述类与类之间关系的.简单的 ...

  7. 如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上

    适用场景 当出现虚拟机无法启动等情况时,需要将虚拟机的 OS 磁盘挂载到其他虚拟机上进行问题诊断或者数据恢复.使用托管磁盘的虚拟机无法通过存储浏览器等工具进行管理,只能通过 PowerShell 来操 ...

  8. SQL Server ->> CLR存储过程枚举目录文件并返回结果集

    因工作需要写了个CLR存储过程枚举目录文件并返回结果集 using System; using System.IO; using System.Collections.Generic; using S ...

  9. Spyder更改默认工作路径已经文件路径

    打开spyder,选择菜单栏中的Tools--->Preferences--->Current working directory   然后选择最下面的单选按钮The following ...

  10. 爬虫入门之handler与opener(三)

    1 自定义opener opener是 urllib.request.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的模块构建好的opener 但是基本的ur ...