博客
关于我
Python base64和hashlib模块
阅读量:798 次
发布时间:2023-03-05

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

一、Base64编码与解码

Base64模块是Python标准库,提供了将二进制数据与ASCII字符之间的编码与解码功能。该模块支持Base16、Base32、Base64、Ascii85和Base85等编码方式,用户无需安装即可使用。

Base64模块主要提供以下两种接口:

  • 将字节类型数据进行Base64编码,生成由ASCII可打印字符组成的二进制数据。
  • 对Base64编码后的二进制数据进行解码,生成原始的字节类型数据。

注意:编码与解码的参数必须是二进制数据,否则可能会导致错误。

1、字符串编码与解码示例

以下是使用Base64模块对字符串进行编码与解码的示例:

import base64  str = "Hello Python"  # 将字符串编码为Base64格式  byte_str = str.encode("utf-8")  b64_str = base64.b64encode(byte_str)  print("Base64编码结果:", b64_str)  print("-------------") 将Base64编码后的二进制数据解码为原始字符串 byte_str2 = base64.b64decode(b64_str) str2 = byte_str2.decode("utf-8") print("解码后的字符串:", str2)

2、URL编码与解码示例

Base64模块还支持对URL进行编码与解码。以下是相关示例:

import base64  url = "http://www.baidu.com?k1=v1&k2=值二"  # 将URL编码为Base64格式  byte_url = url.encode("utf-8")  b64_url = base64.b64encode(byte_url)  print("Base64编码后的URL:", b64_url)  print("-------------") 将Base64编码后的二进制数据解码为原始URL byte_url2 = base64.b64decode(b64_url) url2 = byte_url2.decode("utf-8") print("解码后的URL:", url2)

二、Hashlib模块

Hashlib是Python内置的安全模块,提供了多种常用摘要算法,如MD5、SHA1、SHA256、SHA384和SHA512等。这些算法用于将任意长度的数据转换为固定长度的数据串(哈希值),用于数据的完整性验证。

1.1 常用属性

import hashlib  # 列出所有可用的算法  print(dir(hashlib))  # 列出确保支持的算法  print(hashlib.algorithms_guaranteed)  # 查看哈希值的长度  print(hashlib.md5().digest_size)  # 查看哈希算法的块大小  print(hashlib.md5().block_size)

1.2 常用方法

import hashlib  创建指定算法的哈希对象 hash_obj = hashlib.new('md5') 更新哈希对象 hash_obj.update('Hello'.encode('utf-8')) hash_obj.update('Python'.encode('utf-8')) 返回十六进制字符串形式的哈希值 hex_digest = hash_obj.hexdigest() print(hex_digest) 返回二进制形式的哈希值 binary_digest = hash_obj.digest() print(binary_digest)

1.3 使用步骤

以下是使用Hashlib进行MD5编码的示例:

import hashlib  def jm_md5(password): m = hashlib.md5() m.update('abc'.encode('utf-8')) m.update(password.encode('utf-8')) return m.hexdigest(), m.digest() 示例调用 result = jm_md5('123456') print("原始密码:", '123456') print("MD5哈希值:", result[0]) print("二进制哈希值:", result[1])

2、MD5(消息摘要算法)

MD5是一种广泛使用的密码杂凑函数,能够产生一个128位的固定长度的哈希值,用于确保信息传输的完整性。

以下是使用MD5算法的示例:

import hashlib  def jm_md5(password): m = hashlib.md5() m.update('abc'.encode('utf-8')) m.update(password.encode('utf-8')) return m.hexdigest(), m.digest() 示例调用 result = jm_md5('123456') print("原始密码:", '123456') print("MD5哈希值:", result[0]) print("二进制哈希值:", result[1])

3、SHA-256(安全哈希算法)

SHA-256是一种安全哈希算法,常用于数字签名标准(DSS)中定义的数字签名算法(DSA)。它用于验证数据的完整性,且生成的哈希值长度较长,安全性较高。

以下是使用SHA-256算法的示例:

import hashlib  def jm_sha256(password): m = hashlib.sha256() m.update('abc'.encode('utf-8')) m.update(password.encode('utf-8')) return m.hexdigest(), m.digest() 示例调用 result = jm_sha256('123456') print("原始密码:", '123456') print("SHA-256哈希值:", result[0]) print("二进制哈希值:", result[1])

转载地址:http://ivafk.baihongyu.com/

你可能感兴趣的文章
PyTorch-Tutorials【pytorch官方教程中英文详解】- 3 Datasets&DataLoaders
查看>>
ProxySQL+MHA搭建MySQL读写分离高可用集群
查看>>
Proxy源代码分析--谈谈如何学习linux网络编程
查看>>
pr录制自己声音杂音很重
查看>>
PyTorch-Tutorials【pytorch官方教程中英文详解】- 2 Tensors
查看>>
ps ww
查看>>
PS —— 制作喷漆人像
查看>>
PS —— 制作证件照
查看>>
PS —— 精修图像
查看>>
PS 图像调整算法——色调分离
查看>>
ps 图层混合模式
查看>>
ps2025下载安装教程(附安装包)ps2025超详细安装教程
查看>>
PSGSuite 项目推荐
查看>>
PSR PHP业界规范
查看>>
psv黑商店pkgj最新版下载_黑科技p图app下载-黑科技p图最新版下载v1.0.0
查看>>
ps命令详解
查看>>
PyTorch-Tutorials【pytorch官方教程中英文详解】- 1 Quickstart
查看>>
PS网页设计教程XVIII——在Photoshop中设计优雅的乡村酒店或餐厅的网页布局
查看>>
PS获取RGB和十六进制的颜色值
查看>>
PyTorch 的 10 条顶级知识点
查看>>