当前位置:首页 > 编程技术 > 正文

字符串 如何加密解密

字符串 如何加密解密

字符串加密和解密是信息安全中常见的技术,有多种加密算法可以实现。以下是一些常见的加密和解密方法: 1. Base64编码/解码Base64是一种基于64个可打印字符来表...

字符串加密和解密是信息安全中常见的技术,有多种加密算法可以实现。以下是一些常见的加密和解密方法:

1. Base64编码/解码

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。它不是加密,但可以防止数据在传输过程中被破坏。

加密(编码):

```python

import base64

def encode_base64(input_string):

return base64.b64encode(input_string.encode()).decode()

示例

encrypted_string = encode_base64("Hello, World!")

print(encrypted_string)

```

解密(解码):

```python

def decode_base64(input_string):

return base64.b64decode(input_string).decode()

示例

decrypted_string = decode_base64(encrypted_string)

print(decrypted_string)

```

2. AES加密

AES是一种常用的对称加密算法。

加密:

```python

from Crypto.Cipher import AES

from Crypto.Util.Padding import pad

def encrypt_aes(input_string, key):

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

ct_bytes = cipher.encrypt(pad(input_string.encode(), AES.block_size))

iv = cipher.iv

return iv + ct_bytes

示例

key = b'16bytekey1234567890' AES密钥长度为16、24或32字节

encrypted_string = encrypt_aes("Hello, World!", key)

print(encrypted_string)

```

解密:

```python

from Crypto.Cipher import AES

from Crypto.Util.Padding import unpad

def decrypt_aes(input_string, key):

iv = input_string[:16]

ct = input_string[16:]

cipher = AES.new(key, AES.MODE_CBC, iv)

pt = unpad(cipher.decrypt(ct), AES.block_size)

return pt.decode()

示例

decrypted_string = decrypt_aes(encrypted_string, key)

print(decrypted_string)

```

注意:

在实际应用中,密钥管理非常重要,需要妥善保管。

加密和解密时,应确保使用相同的算法和模式。

上述代码仅作为示例,实际应用中可能需要考虑更多的安全因素。

希望这些信息能帮助你!有其他问题,随时提问。

最新文章