Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def symmetric_enc(message, key):
- return [ord(char) ^ key for char in message]
- def symmetric_dec(cipher, key) :
- return [num ^ key for num in cipher]
- def asymmetric_enc(message, pubkey) :
- e,n = pubkey
- c = pow(message,e,n)
- return c
- def asymmetric_dec(cipher, prikey) :
- d,n = prikey
- message = pow(cipher,d,n)
- return message
- def enc(message, pubkey):
- session_key = random.randrange(1, 256)
- return (asymmetric_enc(session_key, pubkey),
- symmetric_enc(message, session_key))
- def dec(message, prikey):
- session_key, body = message
- session_key = asymmetric_dec(session_key, prikey)
- msg = symmetric_dec(body, session_key)
- message = ''.join([chr(m) for m in msg])
- return message
- n = 3337
- e = 79
- d = 1019
- pubkey = (e, n)
- prikey = (d, n)
- msg = 'Hello World!'
- print(msg)
- cipher = enc(msg, pubkey)
- print('-------')
- for c in cipher : print(c,)
- print('-------')
- decipher = dec(cipher, prikey)
- print(decipher)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement