Ahmad Hammoudeh commited on
Commit
d6b31e0
·
1 Parent(s): 7966cc9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -0
app.py CHANGED
@@ -26,6 +26,32 @@ iface.launch()
26
 
27
 
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  class AESCipher(object):
30
  def __init__(self, key):
31
  self.bs = AES.block_size
@@ -45,3 +71,6 @@ class AESCipher(object):
45
  @staticmethod
46
  def _unpad(s):
47
  return s[:-ord(s[len(s)-1:])]
 
 
 
 
26
 
27
 
28
 
29
+ def AES_encrypt(User_message,seed, publicKey,encoding = 1, padding = 30):
30
+ #number conversion to encrypt non-english content
31
+ User_message_numbered = (int.from_bytes(bytes(User_message, 'utf-16'), "big"))
32
+ #padding
33
+ front_padding = ''.join(random.choices(string.digits, k=padding)) #string.ascii_lowercase +
34
+ back_padding = ''.join(random.choices(string.digits, k=padding)) #string.ascii_lowercase +
35
+ msg = front_padding + str(User_message_numbered) + back_padding
36
+ msg_len =len(msg) #total number of charachters in the msg
37
+ permutation_list = list(range(0,msg_len))
38
+ random.seed(seed)
39
+ random.shuffle(permutation_list)
40
+ shffled_msg_list = [msg[i] for i in permutation_list]
41
+ shffled_msg = ''.join(shffled_msg_list)
42
+ #print(shffled_msg)
43
+ encMessage = AESCipher(str(publicKey.n)).encrypt(shffled_msg)
44
+ if encoding == 0:
45
+ encMessage_int = encMessage
46
+ elif encoding == 1:
47
+ encMessage_int = encMessage.decode('utf-16')
48
+ else:
49
+ encMessage_int = int.from_bytes(encMessage, "big")
50
+ return encMessage_int
51
+
52
+
53
+
54
+
55
  class AESCipher(object):
56
  def __init__(self, key):
57
  self.bs = AES.block_size
 
71
  @staticmethod
72
  def _unpad(s):
73
  return s[:-ord(s[len(s)-1:])]
74
+
75
+ def invert_perm_list(p):
76
+ return [p.index(l) for l in range(len(p))]