python 加密模块_Python加密模块

RSA加密

# 生成公钥私钥对象

import rsa

pub_key_obj, priv_key_obj = rsa.newkeys(1024)

'''

这里的1024是二进制位数, 也就是说他加密的内容只有1024/8 = 128个字节, 但是里面又有着11个字节是它必须有的, 所以最长只能加密117个字节

'''

# 获取公钥私钥字符串

pub_key_str = pub_key_obj.save_pkcs1()

priv_key_str = priv_key_obj.save_pkcs1()

# 加密

pk = rsa.PublicKey.load_pkcs1(pub_key_str) # 加载公钥

val = b"haha"

m_val = rsa.encrypt(val,pk) # 这就是加密的结果, 长度就是128(与上面有关)

# 解密

pr = rsa.PrivateKey.load_pkcs1(priv_key_str) # 加载私钥

r_val = rsa.decrypt(m_val, pr)

上面说1024只能加密127个字节, 我们来试一下

pk = rsa.PublicKey.load_pkcs1(pub_key_str) # 加载公钥

val = b"haha" * 30 # 120长度

m_val = rsa.encrypt(val,pk)

'''

OverflowError: 120 bytes needed for message, but there is only space for 117

'''

那如何来加密长字符串呢, 通过循环, 我们可以每次加密117个字节, 最后把得到的内容拼接起来, 解密时相同, 每次解密128字节

# 加密

pk = rsa.PublicKey.load_pkcs1(key_str)

bytes_value = b"haha" * 30

length = len(bytes_value)

val_list = []

for i in range(0, length, 117):

tpl = bytes_value[i:i + 117]

val = rsa.encrypt(tpl, pk)

val_list.append(val)

ret = b''.join(val_list)

# 解密

pk = rsa.PrivateKey.load_pkcs1(key_str)

length = len(ret)

val_list = []

for i in range(0, length, 128):

tpl = ret[i:i + 128]

val = rsa.decrypt(tpl, pk)

val_list.append(val)

ret = b''.join(val_list)

base64加密

import base64

crypt = base64.standard_b64encode(b"haha") # 加密

print(crypt)

decrypt = base64.standard_b64decode(crypt) # 解密

print(decrypt)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想加密一个文件夹或zip文件,可以使用Python中的加密库来实现。以下是一些常用的加密库: 1. pyAesCrypt:这是一个用于加密和解密文件的Python库。它使用AES加密算法,并且可以处理大文件。 2. cryptography:这是一个用于加密和解密数据的Python库。它支持多种加密算法,包括AES、DES、RSA等。 3. PyCrypto:这是一个Python密码库,支持多种加密算法,包括AES、DES、RSA、Blowfish等。 下面是使用pyAesCrypt加密文件夹或zip文件的代码示例: ```python import pyAesCrypt import os # 定义加密函数 def encrypt_folder(password, src_folder, dest_zip): bufferSize = 64 * 1024 pyAesCrypt.encryptFile(src_folder, dest_zip, password, bufferSize) # 定义解密函数 def decrypt_folder(password, src_zip, dest_folder): bufferSize = 64 * 1024 pyAesCrypt.decryptFile(src_zip, dest_folder, password, bufferSize) # 加密文件夹 password = "mypassword" src_folder = "myfolder" dest_zip = "myfolder.zip" encrypt_folder(password, src_folder, dest_zip) # 解密文件夹 src_zip = "myfolder.zip" dest_folder = "myfolder_decrypted" decrypt_folder(password, src_zip, dest_folder) ``` 在上面的代码中,我们使用pyAesCrypt库来加密和解密文件夹。首先,我们定义了两个函数:encrypt_folder和decrypt_folder,分别用于加密和解密文件夹。接着,我们定义了一个密码变量和两个文件路径变量,用于指定要加密的文件夹和加密后的zip文件。最后,我们调用encrypt_folder函数来加密文件夹,调用decrypt_folder函数来解密文件夹。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值