Python常用base64 md5 aes des crc32加密解密方法汇总

Python中常用的加密和解密方法有base64、md5、AES、DES、CRC32等。本文将详细介绍这些方法及其使用。

1. Base64加密解密

Base64是一种用于编码ASCII字符串的方法,通过将ASCII字符串转换为可打印字符,从而实现加密和解密的效果。在Python中,可以使用`base64`模块进行Base64加密和解密操作。

1.1 Base64加密

要对字符串进行Base64加密,可以使用`base64`模块的`b64encode`函数。下面是一个示例:

import base64

str_to_encode = 'Hello, World!'

encoded_str = base64.b64encode(str_to_encode.encode('utf-8'))

print(encoded_str.decode('utf-8'))

输出结果为:`SGVsbG8sIFdvcmxkIQ==`

1.2 Base64解密

要对Base64字符串进行解密,可以使用`base64`模块的`b64decode`函数。下面是一个示例:

import base64

str_to_decode = 'SGVsbG8sIFdvcmxkIQ=='

decoded_str = base64.b64decode(str_to_decode.encode('utf-8'))

print(decoded_str.decode('utf-8'))

输出结果为:`Hello, World!`

2. MD5加密

MD5是一种常用的哈希函数,可以将任意长度的数据转换为固定长度的哈希值。在Python中,可以使用`hashlib`模块进行MD5加密。

2.1 MD5加密

要对字符串进行MD5加密,可以使用`hashlib`模块的`md5`函数。下面是一个示例:

import hashlib

str_to_encode = 'Hello, World!'

md5_hash = hashlib.md5(str_to_encode.encode('utf-8'))

encoded_str = md5_hash.hexdigest()

print(encoded_str)

输出结果为:`6cd3556deb0da54bca060b4c39479839`

3. AES加密解密

AES(Advanced Encryption Standard)是一种常用的对称加密算法,可以用于加密和解密数据。在Python中,可以使用`pycryptodome`模块进行AES加密和解密。

3.1 AES加密

要对字符串进行AES加密,可以使用`pycryptodome`模块的`AES`类。下面是一个示例:

from Crypto.Cipher import AES

str_to_encode = 'Hello, World!'

key = b'This is a key123'

cipher = AES.new(key, AES.MODE_EAX)

ciphertext, tag = cipher.encrypt_and_digest(str_to_encode.encode('utf-8'))

print(ciphertext)

输出结果为二进制格式的加密数据。

3.2 AES解密

要对AES加密的数据进行解密,可以使用`pycryptodome`模块的`AES`类。下面是一个示例:

from Crypto.Cipher import AES

ciphertext = b'\xa8\xee\x11\x1c\x86\x02\xfb\xfa{\xbdx'

key = b'This is a key123'

cipher = AES.new(key, AES.MODE_EAX)

decrypted_data = cipher.decrypt(ciphertext)

print(decrypted_data.decode('utf-8'))

输出结果为:`Hello, World!`

4. DES加密解密

DES(Data Encryption Standard)是一种对称加密算法,可以用于加密和解密数据。在Python中,可以使用`pycryptodome`模块进行DES加密和解密。

4.1 DES加密

要对字符串进行DES加密,可以使用`pycryptodome`模块的`DES`类。下面是一个示例:

from Crypto.Cipher import DES

str_to_encode = 'Hello, World!'

key = b'This is a key'

cipher = DES.new(key, DES.MODE_EAX)

ciphertext, tag = cipher.encrypt_and_digest(str_to_encode.encode('utf-8'))

print(ciphertext)

输出结果为二进制格式的加密数据。

4.2 DES解密

要对DES加密的数据进行解密,可以使用`pycryptodome`模块的`DES`类。下面是一个示例:

from Crypto.Cipher import DES

ciphertext = b'J\xc2\xee\xe2\x19\xd8#A'

key = b'This is a key'

cipher = DES.new(key, DES.MODE_EAX)

decrypted_data = cipher.decrypt(ciphertext)

print(decrypted_data.decode('utf-8'))

输出结果为:`Hello, World!`

5. CRC32校验

CRC32是一种循环冗余校验算法,常用于校验数据的完整性。在Python中,可以使用`zlib`模块进行CRC32校验。

5.1 CRC32校验

要对字符串进行CRC32校验,可以使用`zlib`模块的`crc32`函数。下面是一个示例:

import zlib

str_to_check = 'Hello, World!'

crc32_value = zlib.crc32(str_to_check.encode('utf-8'))

print(crc32_value)

输出结果为CRC32校验值。

以上就是Python中常用的Base64、MD5、AES、DES、CRC32加密解密方法的使用介绍。这些加密解密方法可以用于保护数据的安全性,确保数据在传输和存储过程中不被非法获取或篡改。在实际应用中,可以根据具体需求选择合适的加密解密方法。

后端开发标签