Created
May 17, 2022 14:35
-
-
Save justxor/fb4c1a1f197a4f59a68108c25e172511 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
# Вдохновлено http://coding4streetcred.com/blog/post/Asymmetric-Encryption-Revisited-(in-PyCrypto) | |
# Документация по PyCrypto доступна по адресу https://www.dlitz.net/software/pycrypto/api/2.6/ | |
from Crypto import Random | |
from Crypto.PublicKey import RSA | |
import base64 | |
def generate_keys(): | |
# RSA modulus length must be a multiple of 256 and >= 1024 | |
modulus_length = 256*4 # use larger value in production | |
privatekey = RSA.generate(modulus_length, Random.new().read) | |
publickey = privatekey.publickey() | |
return privatekey, publickey | |
def encrypt_message(a_message , publickey): | |
encrypted_msg = publickey.encrypt(a_message, 32)[0] | |
encoded_encrypted_msg = base64.b64encode(encrypted_msg) # base64 encoded strings are database friendly | |
return encoded_encrypted_msg | |
def decrypt_message(encoded_encrypted_msg, privatekey): | |
decoded_encrypted_msg = base64.b64decode(encoded_encrypted_msg) | |
decoded_decrypted_msg = privatekey.decrypt(decoded_encrypted_msg) | |
return decoded_decrypted_msg | |
########## начинакм ########## | |
a_message = "The quick brown fox jumped over the lazy dog" | |
privatekey , publickey = generate_keys() | |
encrypted_msg = encrypt_message(a_message , publickey) | |
decrypted_msg = decrypt_message(encrypted_msg, privatekey) | |
print "%s - (%d)" % (privatekey.exportKey() , len(privatekey.exportKey())) | |
print "%s - (%d)" % (publickey.exportKey() , len(publickey.exportKey())) | |
print " Original content: %s - (%d)" % (a_message, len(a_message)) | |
print "Encrypted message: %s - (%d)" % (encrypted_msg, len(encrypted_msg)) | |
print "Decrypted message: %s - (%d)" % (decrypted_msg, len(decrypted_msg)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment