Слияние кода завершено, страница обновится автоматически
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 )