python crypto使用_python Crypto 加密解密

本片文字记录使用python 的Crypto 工具对图片或者文本进行加密解密的方法:

import numpy as np

from PIL import Image

from base64 import b64encode, b64decode

from Crypto.Cipher import AES

BS = 16

iv = 16 * b'\0'

key = b'25jkUjx14hkc@q58gxU3mcaaaaaaaaaa'

imgPath = './test/data/0_biaoge.jpg'

# pad for length not multiple of string

pad_txt = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)

# jiami

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

img = open(imgPath, 'rb').read()

img_base64 = b64encode(img)

img_base64_str = str(img_base64, encoding='utf-8')

data_jiami = obj.encrypt(pad_txt(img_base64_str))

# jiemi

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

data_jiemi = obj2.decrypt(data_jiami)

data_jiemi_str = str(data_jiemi, encoding='utf-8').replace('\x04', '')

data_jiemi_base64 = b64decode(data_jiemi_str)

img = np.asarray(bytearray(data_jiemi_base64), dtype="uint8")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值