Created
August 17, 2022 00:18
-
-
Save MateusAndreatta/89bb537b411a3b5ee52e333c4a5a79f3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from cryptography.hazmat.primitives import hashes | |
from cryptography.hazmat.primitives.asymmetric import rsa, padding | |
# Usando o pacote cryptografhy crie 3 funções; | |
# • Que cria uma chave publica e privada usando o RSA | |
# • Uma função que assina uma mensagem usando a chave privada | |
# • Outra função que verifica se a mensagem foi assinada de forma correta | |
def gerarChaves(): | |
return rsa.generate_private_key( | |
public_exponent=65537, | |
key_size=2048, | |
) | |
def escreverMensagem(msg, chavePrivada): | |
return chavePrivada.sign( | |
str.encode(msg), | |
padding.PSS( | |
mgf=padding.MGF1(hashes.SHA256()), | |
salt_length=padding.PSS.MAX_LENGTH | |
), | |
hashes.SHA256() | |
) | |
def verificarMensagem(assinatura, msg,chavePublica): | |
return chavePublica.verify( | |
assinatura, | |
str.encode(msg), | |
padding.PSS( | |
mgf=padding.MGF1(hashes.SHA256()), | |
salt_length=padding.PSS.MAX_LENGTH | |
), | |
hashes.SHA256() | |
) | |
mensagem = "Mensagem da aula do Mark de teste" | |
chavePrivada = gerarChaves() | |
chavePublica = chavePrivada.public_key() | |
assinatura = escreverMensagem(mensagem, chavePrivada) | |
verificarMensagem(assinatura, mensagem, chavePublica) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment