1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ausx-audb

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
rsaop.py 1.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Danny Отправлено 10.05.2022 05:28 2a49206
from Cryptodome.PublicKey import RSA
from Cryptodome.Cipher import PKCS1_v1_5
from Cryptodome import Random
def encrypt(pub_key_str, msg, length=100):
"""
单次加密串的长度最大为 (key_size/8)-11
1024bit的证书用100, 2048bit的证书用 200
"""
pubobj = RSA.importKey(pub_key_str)
pubobj = PKCS1_v1_5.new(pubobj)
res = []
for i in range(0, len(msg), length):
res.append(pubobj.encrypt(msg[i:i+length]))
return "".join(res)
def decrypt(priv_key_str, msg, length=128):
"""
1024bit的证书用128,2048bit证书用256位
"""
privobj = RSA.importKey(priv_key_str)
privobj = PKCS1_v1_5.new(privobj)
res = []
for i in range(0, len(msg), length):
res.append(privobj.decrypt(msg[i:i+length], 'xyz'))
return "".join(res)
def createkey(len):
random_generator = Random.new().read
rsa = RSA.generate(len, random_generator)
private_pem = rsa.exportKey()
public_pem = rsa.publickey().exportKey()
return (public_pem.decode('utf-8'),private_pem.decode('utf-8'))
print(createkey(1024))

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/ausx-audb.git
git@api.gitlife.ru:oschina-mirror/ausx-audb.git
oschina-mirror
ausx-audb
ausx-audb
master