Encrypt and Decode
WxylkxyZz 菜鸡
本文距离上次更新已过去 0 天,部分内容可能已经过时,请注意甄别。

1. Base64加密/解密

Base64是一种常用的编码方式,通常用于将二进制数据转换为文本格式,从而可以在网络上或其他不支持二进制传输的环境中传输数据。Base64编码方法涉及到将原始二进制数据分割成固定的小块,每个小块都以6bit的形式表示为一个字符,最终组成一个文本字符串。

python的base64库提供了Base64编码/解码的功能,可以直接使用如下代码进行编码和解码操作:

1
2
3
4
5
6
7
8
9
10
import base64

# 编码
data = b'hello world'
encoded_data = base64.b64encode(data)
print(encoded_data)

# 解码
decoded_data = base64.b64decode(encoded_data)
print(decoded_data)

2. MD5加密

MD5是一种哈希算法,可以将任意长度的数据转换为固定长度的hash值,通常用于密码加密、数字签名等方面。MD5算法是单向的不可逆的,因此不会出现密码泄露的情况。

python的hashlib库中提供了MD5算法的实现,可以直接使用如下代码进行加密操作:

1
2
3
4
5
6
7
8
import hashlib

# 加密
data = b'hello world'
md5 = hashlib.md5()
md5.update(data)
encrypted_data = md5.hexdigest()
print(encrypted_data)

3. SHA1加密

SHA1是一种安全哈希算法,类似于MD5,可以将任意长度的数据转换为固定长度的hash值。在密码学安全性方面,SHA1比MD5更为可靠,但在哈希效率、碰撞检测等方面略逊一筹。

使用python的hashlib库中的SHA1算法,可以类似于MD5一样进行加密操作,如下所示:

1
2
3
4
5
6
7
8
import hashlib

#加密
data = b'hello world'
sha1 = hashlib.sha1()
sha1.update(data)
encrypted_data = sha1.hexdigest()
print(encrypted_data)

4. AES加密

AES是一种高级加密标准,也是目前应用广泛的加密算法之一。与前面三种算法不同,AES算法是一种对称加密算法,需要使用相同的密钥进行加密和解密操作。AES算法支持多种密钥长度和加密模式,可以根据实际需求进行调整。

python的pycryptodome库提供了AES算法的实现,可以使用如下代码进行加密和解密操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from Crypto.Cipher import AES
import base64

# 加密
data = b'hello world'
key = b'this is a secret key'
mode = AES.MODE_CBC
iv = b'1234567890123456'
encryptor = AES.new(key, mode, iv)
encrypted_data = encryptor.encrypt(data)
encoded_data = base64.b64encode(encrypted_data)
print(encoded_data)

# 解密
decoded_data = base64.b64decode(encoded_data)
decryptor = AES.new(key, mode, iv)
decrypted_data = decryptor.decrypt(decoded_data)
print(decrypted_data)

5. RSA加密

RSA加密算法是一种非对称加密算法,它需要两个密钥,分别为公钥和私钥。公钥可以公开,用于加密数据;私钥保密,用于解密数据。RSA算法不仅可以用于加密解密,还可以用于数字签名、身份认证等。

使用python的Crypto库中的RSA算法,可以生成密钥对、进行加密和解密操作,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
import base64

# 生成RSA密钥对
key = RSA.generate(1024)
private_key = key.export_key()
public_key = key.publickey().export_key()

# 公钥加密,私钥解密
data = b'hello world'
rsakey = RSA.import_key(private_key)
cipher = PKCS1_v1_5.new(rsakey)
encrypted_data = base64.b64encode(cipher.encrypt(data))
print(encrypted_data)

rsakey = RSA.import_key(public_key)
cipher = PKCS1_v1_5.new(rsakey)
decrypted_data = cipher.decrypt(base64.b64decode(encrypted_data), None)
print(decrypted_data)

以上就是五种常用的加密算法的基本实现,您可以根据实际需求结合UI开发进行集成。对于UI设计,您可以使用Tkinter模块、PyQt等开源工具。