import hashlib import streamlit as st from cryptography.hazmat.primitives import hashes from cryptography.hazmat.primitives.asymmetric import ( padding, rsa, utils ) private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048, ) st.write(""" # Tanda Tangan Digital """) input = st.text_input('Masukkan Teks', 'Muhamad Aziz 20220028') prehashed_msg = hashlib.sha256(input.encode()).digest() signature = private_key.sign( prehashed_msg, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), utils.Prehashed(hashes.SHA256()) ) st.write("Tanda tangan digital :", signature) public_key = private_key.public_key() try : public_key.verify( signature, prehashed_msg, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), utils.Prehashed(hashes.SHA256()) ) st.write("Tanda tangan VALID") except InvalidSignature : st.write("Tanda Tangan INVALID")