Python实现数据加密-解密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Python实现数据加密-解密

Python实现数据加密-解密
运行环境:

OS:macOS Monterey Version 12.3.1(英文版)

image.png

IDE:PyCharm 2020.1

1 . PyCryptodome库安装
PyCryptodome是Python中一种强大的加密算法库,可以实现常见的单向加密、对称加密、非对称加密和流加密算法。目前该库函数支持Python 2和Python 3两种不同版本。安装方式也极其简单,以pip方式进行安装。安装过程如下:

Linux环境:

(venv) (base) liuxiaowei@MacBookAir 漏洞检测与防御 % sudo pip3 install -i https://pypi.douban.com/simple pycryptodome

结果如下图:
image.png

Windows环境:

C:\cmder
λ pip3 install -i https://pypi.douban.com/simple pycryptodomex

结果如下图:

image.png

2. Python实现Base64编/解码
严格意义上讲,Base64编码算法并不算是加密算法,Base64编码只是将数据转码,而且转码的规则是公开的。

2.1 Base64编码方式
示例代码如下:

import base64
s = 'ms08067'
bs = base64.b64encode(s.encode('utf-8'))
print(bs)

结果如下:

b'bXMwODA2Nw=='

2.2 Base64解码方式
示例代码如下:

import base64
bs = 'bXMwODA2Nw=='
bbs = str(base64.b64decode(bs), 'utf-8')
print(bbs)

结果如下:

ms08067

3. Python实现DES加解密
3.1 DES加密
示例代码如下:

from Cryptodome.Cipher import DES
import binascii

key = b'abcdefgh'                # key的长度约为8字节
des = DES.new(key, DES.MODE_ECB) # ECB模式
text = 'ms08067.com'
text = text + (8 - (len(text) % 8)) * '='
encrypt_text = des.encrypt(text.encode())
encryptResult = binascii.b2a_hex(encrypt_text)  # b2a_hex
print(text)
print(encryptResult)

结果如下:

ms08067.com=====
b'b81fcb047936afb76487dda463334767'

3.2 DES解密
示例代码如下:

from Cryptodome.Cipher import DES
import binascii

key = b'abcdefgh'         # key的长度必须为8字节
des = DES.new(key, DES.MODE_ECB)   # ECB模式
encryptResult = b'b81fcb047936afb76487dda463334767'
encrypto_text = binascii.a2b_hex(encryptResult)   #a2b_hex
decryptResult = des.decrypt(encrypto_text)
print(decryptResult)

结果如下:

b'ms08067.com====='

4. Python实现AES加解密
4.1 AES加密
示例代码如下:

from Cryptodome.Cipher import AES
import binascii
key = b'abcdefghabcdefgh'  # key 的长度必须为8字节
text = 'baidu.com'   # 被加密的数据需要为8字节的倍数

text = text +(16- len(text) % 16) * '='
aes = AES.new(key, AES.MODE_ECB)      # ECB模式
encrypto_text =aes.encrypt(text.encode())
encryptResult = binascii.b2a_hex(encrypto_text)  # b2a_hex
print(text)
print(encryptResult)

结果如下:

baidu.com=======
b'7838f1b0f8d26e5c563778670fd0d6e0'

4.2 AES解密
示例代码如下:

from Cryptodome.Cipher import AES
import binascii

key = b'abcdefghabcdefgh'  # key 的长度必须为8字节
encryptResult = b'7838f1b0f8d26e5c563778670fd0d6e0'
aes = AES.new(key, AES.MODE_ECB)    # ECB模式
encrypto_text = binascii.a2b_hex(encryptResult)  # a2b_hex
decryptResult = aes.decrypt(encrypto_text)
print(decryptResult)

结果如下:

b'baidu.com======='

5. Python实现MD5加密
示例代码如下:

from hashlib import md5

def encrypt_md5(s):
    new_md5 = md5()   # 创建md5对象
    new_md5.update(s.encode(encoding='utf-8'))
    # 返回信息摘要
    return  new_md5.hexdigest()

if __name__ == '__main__':
    print(encrypt_md5('ms08067.com'))

结果如下:

0961f18e7a720a53797aa038c9c643d1

通过在线工具验证,如下图:

image.png

相关文章
|
15天前
|
数据安全/隐私保护 Python
用python对文件内容进行加密的2种方式
这篇文章介绍了使用Python对文件内容进行加密的两种方式:利用`cryptography`库的Fernet对称加密和使用`rsa`库进行RSA非对称加密。
35 6
|
13天前
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
32 0
|
2天前
|
算法 安全 网络安全
使用 Python 实现 RSA 加密
使用 Python 实现 RSA 加密
8 2
|
11天前
|
人工智能 IDE 开发工具
Python实行任意文件的加密—解密
Python实行任意文件的加密—解密
23 2
|
12天前
|
人工智能 IDE 开发工具
Python实行任意文件的加密—解密
Python实行任意文件的加密—解密
24 1
|
28天前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
55 8
|
1天前
|
IDE 开发工具 数据安全/隐私保护
Python编程实现批量md5加密pdf文件
Python编程实现批量md5加密pdf文件
|
29天前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
54 5
|
21天前
|
安全 算法 数据安全/隐私保护
黑客克星!Python加密艺术大公开,AES、RSA双剑合璧,守护你的数字世界
在这个数据泛滥的时代,数字世界既充满了知识,也潜藏安全隐患。Python 作为强大的编程语言,以其独特的加密技术为我们的信息安全保驾护航。本文将介绍 AES 和 RSA 这两种加密算法,揭示它们如何协同工作,保护你的数字世界。AES(高级加密标准)以其高效、安全著称,能将敏感信息转化为难以破解的乱码。Python 的 `pycryptodome` 库让 AES 加密变得简单易行。然而,AES 面临密钥分发难题,此时 RSA(非对称加密算法)便大显身手,通过公钥加密、私钥解密的方式确保密钥传输安全。AES 与 RSA 在 Python 中交织成一道坚不可摧的防护网,共同守护我们的数字世界。
47 0
|
1天前
|
iOS开发 MacOS Python
Python 编程案例:谁没交论文?输出并生成电子表格
Python 编程案例:谁没交论文?输出并生成电子表格
16 9