当前位置: 首页 > article >正文

数据加密使用方法

一、 SHA256加密算法:

在Python中,你可以使用hashlib库来进行SHA-256哈希运算。hashlib是Python的内置库,不需要额外安装。以下是一个简单的例子,展示了如何使用hashlib.sha256()来对数据进行SHA-256哈希加密:

import hashlib

# 假设我们要对数据进行SHA-256哈希

data = b"Hello, World!"

# 数据必须是字节类型

# 创建一个SHA-256哈希对象

hash_object = hashlib.sha256(data)

# 获取SHA-256哈希值,可以调用hexdigest()方法获取十六进制表示的哈希值

hash_value = hash_object.hexdigest()

print(f"SHA-256哈希值: {hash_value}")

二、Base64加密算法:

在 Python 中,使用 Base64 编码和解码是非常常见的操作。你提供的代码片段基本正确,但有一些小问题需要修正和补充以确保其完整性和正确性。下面是完整的示例代码,包括如何正确导入库、编码和解码字符串。

首先,你需要确保导入了 base64 模块。然后,你可以按照以下步骤进行编码和解码:

import base64

# 原始字符串

original_str = "your_password_here"

# 替换为你的实际字符串

# 将字符串编码为 UTF-8 字节

byte_str = original_str.encode("UTF-8")

# 使用 Base64 编码

encoded_pwd = base64.b64encode(byte_str)

# 打印编码后的结果(字节类型)

print("Encoded:", encoded_pwd)

# 如果需要打印为字符串形式(通常用于显示或传输)

print("Encoded (string):", encoded_pwd.decode("UTF-8"))

三、MD5加密

MD5(Message Digest Algorithm 5)是一种广泛使用的加密散列函数,可以产生一个128位(16字节)的散列值(哈希值),通常用于确保信息传输完整无误。MD5并不是一种加密算法,而是一种哈希函数,它不可逆,即无法通过哈希值反推出原始数据。

四、RSA加密

RSA加密是一种非对称加密算法,广泛用于数据传输和信息安全领域。它基于两个大质数和一个公钥/私钥对来工作,其中公钥用于加密数据,而私钥用于解密数据。

在RSA加密中,有以下几个关键步骤:

  1. 密钥生成‌:

    • 选择两个大质数 pp 和 qq。
    • 计算 n=p×qn=p×q,这将作为模数。
    • 计算 ϕ(n)=(p−1)×(q−1)ϕ(n)=(p−1)×(q−1),这是 nn 的欧拉函数值。
    • 选择一个整数 ee,满足 1<e<ϕ(n)1<e<ϕ(n) 且 ee 与 ϕ(n)ϕ(n) 互质。
    • 计算 dd,使得 d×e≡1(modϕ(n))d×e≡1(modϕ(n)),即 dd 是 ee 在模 ϕ(n)ϕ(n) 下的乘法逆元。
    • 公钥为 (e,n)(e,n),私钥为 (d,n)(d,n)。
  2. 数据加密‌:

    • 假设要加密的消息为 MM,且 M<nM<n。
    • 使用公钥 (e,n)(e,n) 计算密文 CC,即 C=Memod  nC=Memodn。
  3. 数据解密‌:

    • 接收到密文 CC 后,使用私钥 (d,n)(d,n) 计算原文 MM,即 M=Cdmod  nM=Cdmodn。

在Python中,你可以使用rsa库(需要额外安装)或PyCryptodome库(也是额外安装)来进行RSA加密和解密。下面是一个使用rsa库的简单示例:

 

pythonCopy Code

import rsa

# 生成RSA密钥对(公钥和私钥)

public_key, private_key = rsa.newkeys(512)

# 512位密钥,实际应用中通常使用2048位或更高

# 要加密的消息 message = 'hello'

# 将消息转换为字节类型 message_bytes = message.encode('utf-8')

# 使用公钥加密消息

encrypted_message = rsa.encrypt(message_bytes, public_key)

# 使用私钥解密消息

decrypted_message = rsa.decrypt(encrypted_message, private_key)

# 将解密后的字节类型消息转换回字符串

decrypted_message_str = decrypted_message.decode('utf-8')

print(f"原始消息: {message}")

print(f"加密后的消息: {encrypted_message}")

print(f"解密后的消息: {decrypted_message_str}")


http://www.kler.cn/a/403448.html

相关文章:

  • 移动充储机器人“小奥”的多场景应用(上)
  • python oa服务器巡检报告脚本的重构和修改(适应数盾OTP)有空再去改
  • 408代码类复习--八大排序
  • 数据结构-二叉树_堆
  • 问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
  • [C++]:C++11(三)
  • 使用Python编写一个简单的网页爬虫,从网站上抓取标题和正文内容。
  • 是时候谈谈Go的测试了
  • ArcGIS计算水库库容量
  • 曼昆《经济学原理》第八版课后答案及英文版PDF
  • 7.高可用集群架构Keepalived双主热备原理
  • 头歌-本关任务:使用GmSSL命令行,生成SM2私钥并对文件进行签名验证(第二关)。
  • android viewpager2 嵌套 recyclerview 手势冲突
  • FFmpeg源码:mid_pred函数分析
  • Chromium Mojo(IPC)进程通信演示 c++(2)
  • 实验室管理技术革新:Spring Boot系统
  • 什么是事务,事务有什么特性?
  • 大语言模型的多头切片技术在分布式机器上的运行,每个机器是否需加载完整模型参数?无需加载完整模型参数
  • TAIS 软件管理系统深入分析
  • 工作学习--Arrays.asList的问题
  • Linux相关概念和易错知识点(21)(软硬链接、动静态库)
  • 丹摩智算(damodel)部署stable diffusion心得
  • js中的=、==与===的区别
  • linux先创建文件夹后指定创建文件夹用户
  • DataGear 企业版 1.3.0 发布,数据可视化分析平台
  • java-搜索算法