1
+ from Crypto import Random
2
+ from Crypto .PublicKey import RSA
3
+ import base64
4
+
5
+
6
+ def generate_keys (modulus_length = 256 * 4 ):
7
+ privatekey = RSA .generate (modulus_length , Random .new ().read )
8
+ publickey = privatekey .publickey ()
9
+ return privatekey , publickey
10
+
11
+
12
+ def encryptit (message , publickey ):
13
+ encrypted_msg = publickey .encrypt (message , 32 )[0 ]
14
+ encoded_encrypted_msg = base64 .b64encode (encrypted_msg )
15
+ return encoded_encrypted_msg
16
+
17
+
18
+ def decryptit (message , privatekey ):
19
+ decoded_encrypted_msg = base64 .b64decode (message )
20
+ decoded_decrypted_msg = privatekey .decrypt (decoded_encrypted_msg )
21
+ return decoded_decrypted_msg
22
+
23
+
24
+ if __name__ == '__main__' :
25
+ message = "This is a awesome message!"
26
+ privatekey , publickey = generate_keys ()
27
+ encrypted_msg = encryptit (message .encode ("utf-8" ), publickey )
28
+ decrypted_msg = decryptit (encrypted_msg , privatekey )
29
+
30
+ print (f'{ privatekey .exportKey ()} - ({ len (privatekey .exportKey ())} )' )
31
+ print (f'{ publickey .exportKey ()} - ({ len (publickey .exportKey ())} )' )
32
+ print (f'Original: { message } - ({ len (message )} )' )
33
+ print (f'Encrypted: { encrypted_msg } - ({ len (encrypted_msg )} )' )
34
+ print (f'Decrypted: { decrypted_msg } - ({ len (decrypted_msg )} )' )
0 commit comments