Gitlib Gitlib
首页
  • 分类
  • 标签
  • 归档
  • Golang开发实践万字总结
  • MySQL核心知识汇总
  • Redis实践总结
  • MQ实践万字总结
  • Docker数据持久化总结
  • Docker网络模式深度解读
  • 常用游戏反外挂技术总结
  • 读书笔记
  • 心情杂货
  • 行业杂谈
  • 友情链接
关于我
GitHub (opens new window)

Ravior

以梦为马,莫负韶华
首页
  • 分类
  • 标签
  • 归档
  • Golang开发实践万字总结
  • MySQL核心知识汇总
  • Redis实践总结
  • MQ实践万字总结
  • Docker数据持久化总结
  • Docker网络模式深度解读
  • 常用游戏反外挂技术总结
  • 读书笔记
  • 心情杂货
  • 行业杂谈
  • 友情链接
关于我
GitHub (opens new window)
  • PHP

  • Golang

  • Python

    • Python使用lambda表达式
    • Python之线程池
    • Python之装饰器
    • Python之chardet模块使用
    • Python之copy模块使用
    • Python之functools模块使用
    • Python之hashlib模块使用
      • 摘要算法
      • MD5
      • SHA1
    • Python之json模块使用
    • Python之pickle模块使用
    • Python之pid模块使用
    • Python之pypinyin模块使用
    • Python之pyqrcode模块使用
    • Python之threading模块使用
    • Python之base64模块使用
    • Python项目Docker打包
  • Javascript

  • 其他语言

  • 编程语言
  • Python
Ravior
2014-01-23
目录

Python之hashlib模块使用

Python的hashlib模块提供了常见的摘要算法,如MD5,SHA1等等。

# 摘要算法

摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。

# MD5

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

# encoding=utf-8
# hashlib提供了md5 SHA1算法
# hex 16进制
# digest 消化
# hexdigest 16进制消化==> 转换为16进制数据

import logging
import hashlib

logging.basicConfig(level = logging.DEBUG, format='%(levelname)s - %(message)s')

logger = logging.getLogger(__name__)


# md5 用32位的16进制的字符串表示
msg = "hello world"
md5 = hashlib.md5()
md5.update(msg)
logger.debug(md5.hexdigest())
logger.debug(len(md5.hexdigest()))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

输出结果:

DEBUG - 5eb63bbbe01eeed093cb22bb8f5acdc3
DEBUG - 32
1
2

# SHA1

SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。比SHA1更安全的算法是SHA256和SHA512,不过越安全的算法越慢,而且摘要长度更长。

# encoding=utf-8
# hashlib提供了md5 SHA1算法
# hex 16进制
# digest 消化
# hexdigest 16进制消化==> 转换为16进制数据

import logging
import hashlib

logging.basicConfig(level = logging.DEBUG, format='%(levelname)s - %(message)s')

logger = logging.getLogger(__name__)


# sha1 用40位16进制的字符串表示
msg = "hello world"
sha1 = hashlib.sha1()
sha1.update(msg)
logger.debug(sha1.hexdigest())
logger.debug(len(sha1.hexdigest()))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

输出结果:

DEBUG - 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
DEBUG - 40
1
2
#P#y#t#h#o#n
上次更新: 2022/12/01, 11:09:34
Python之functools模块使用
Python之json模块使用

← Python之functools模块使用 Python之json模块使用→

最近更新
01
常用游戏反外挂技术总结
11-27
02
Golang开发实践万字总结
11-11
03
Redis万字总结
10-30
更多文章>
Theme by Vdoing | Copyright © 2011-2022 Ravior | 粤ICP备17060229号-3 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式