├── AESCipher.py
├── Decrypter.py
├── Encrypter.py
├── README.md
├── __pycache__
├── AESCipher.cpython-37.pyc
├── AESCipher.cpython-38.pyc
├── Decrypter.cpython-37.pyc
├── Decrypter.cpython-38.pyc
├── Encrypter.cpython-37.pyc
└── Encrypter.cpython-38.pyc
├── apple-mail.png
├── main.py
├── ui.ui
├── ui_2.ui
├── ui_2.ui.bak
└── ui_2.ui.bak1
/AESCipher.py:
--------------------------------------------------------------------------------
1 | import base64
2 | import hashlib
3 | from Crypto import Random
4 | from Crypto.Cipher import AES
5 |
6 | class AESCipher(object):
7 |
8 | def __init__(self, key):
9 | self.bs = 32
10 | self.key = hashlib.sha256(key.encode()).digest()
11 |
12 | def encrypt(self, raw):
13 | raw = self._pad(raw)
14 | iv = Random.new().read(AES.block_size)
15 | cipher = AES.new(self.key, AES.MODE_CBC, iv)
16 | return base64.b64encode(iv + cipher.encrypt(raw))
17 |
18 | def decrypt(self, enc):
19 | enc = base64.b64decode(enc)
20 | iv = enc[:AES.block_size]
21 | cipher = AES.new(self.key, AES.MODE_CBC, iv)
22 | return self._unpad(cipher.decrypt(enc[AES.block_size:])).decode('utf-8')
23 | #return self._unpad(cipher.decrypt(enc[AES.block_size:])).decode('utf-8')
24 |
25 | def _pad(self, s):
26 | #print("25")
27 | #print(type(s))
28 | #print(type((self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)))
29 | return s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs).encode('utf-8')
30 |
31 | @staticmethod
32 | def _unpad(s):
33 | return s[:-ord(s[len(s)-1:])]
--------------------------------------------------------------------------------
/Decrypter.py:
--------------------------------------------------------------------------------
1 | import base64
2 | import hashlib
3 | from AESCipher import AESCipher
4 | from PIL import Image
5 | from random import randint
6 | class Decrypter:
7 | def __init__(self, cipher):
8 | self.cipher = cipher
9 | def decrypt_image(self,k):
10 | #key = self.get_key_from_image()
11 | key = k
12 | cipher = self.cipher
13 | aes = AESCipher(key)
14 | base64_decoded = aes.decrypt(cipher)
15 | #print(type(base64_decoded))
16 | fh = open("decryptedImage.png", "wb")
17 | fh.write(base64.b64decode(base64_decoded))
18 | #fh.write(base64_decoded.decode('base64'))
19 | fh.close()
20 | return (base64.b64decode(base64_decoded))
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Encrypter.py:
--------------------------------------------------------------------------------
1 | import base64
2 | import hashlib
3 | from AESCipher import AESCipher
4 | from PIL import Image
5 | from random import randint
6 | class Encrypter:
7 | def __init__(self, text,key):
8 | self.text = text
9 | self.key = key
10 | def encrypt_image(self):
11 | aes = AESCipher(self.key)
12 | cipher = aes.encrypt(self.text)
13 | #message = aes.decrypt(cipher)
14 | return cipher
15 |
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Image Encryption using AES Algorithm
2 | ❖ To study the working of AES algorithm.
3 | ❖ To Encrypt and then decrypt a digital image using
4 | AES algorithm using python modules.
5 | ❖ To observe and analyse different modes of AES
6 | encryption and decryption.
7 |
8 | 1. To run the code, any python ide can be used like pycharm, juypter notebook, google collab.
9 | 2. Following Libraries need to installed before running the python code
10 | a. Dlib (The dlib library should be installed using this link: http://dlib.net/compile.html)
11 | b. Scipy
12 | c. OpenCv
13 | d. Numpy
14 | e. Imutils
15 | f. pyglet
16 | g. argparse
17 | 3. Python version above 3.6 can be used.
18 |
--------------------------------------------------------------------------------
/__pycache__/AESCipher.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rachit-Goel/Image-Encryption-using-AES/faf149302dd484b52b506cd4a946765e4778cc88/__pycache__/AESCipher.cpython-37.pyc
--------------------------------------------------------------------------------
/__pycache__/AESCipher.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rachit-Goel/Image-Encryption-using-AES/faf149302dd484b52b506cd4a946765e4778cc88/__pycache__/AESCipher.cpython-38.pyc
--------------------------------------------------------------------------------
/__pycache__/Decrypter.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rachit-Goel/Image-Encryption-using-AES/faf149302dd484b52b506cd4a946765e4778cc88/__pycache__/Decrypter.cpython-37.pyc
--------------------------------------------------------------------------------
/__pycache__/Decrypter.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rachit-Goel/Image-Encryption-using-AES/faf149302dd484b52b506cd4a946765e4778cc88/__pycache__/Decrypter.cpython-38.pyc
--------------------------------------------------------------------------------
/__pycache__/Encrypter.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rachit-Goel/Image-Encryption-using-AES/faf149302dd484b52b506cd4a946765e4778cc88/__pycache__/Encrypter.cpython-37.pyc
--------------------------------------------------------------------------------
/__pycache__/Encrypter.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rachit-Goel/Image-Encryption-using-AES/faf149302dd484b52b506cd4a946765e4778cc88/__pycache__/Encrypter.cpython-38.pyc
--------------------------------------------------------------------------------
/apple-mail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rachit-Goel/Image-Encryption-using-AES/faf149302dd484b52b506cd4a946765e4778cc88/apple-mail.png
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | from PyQt5 import QtCore,QtGui
2 | from PyQt5.QtCore import *
3 | from PyQt5.QtGui import *
4 | from PyQt5.QtWidgets import *
5 | from PyQt5.QtWidgets import QFileDialog,QLabel,QAction,QMainWindow,QApplication
6 | from PyQt5.uic import loadUiType
7 | from Encrypter import Encrypter
8 | from Decrypter import Decrypter
9 | from PIL import Image as Img
10 | from PIL import ImageTk as ImgTk
11 | #from tkinter import *
12 | import base64
13 | from Crypto.Cipher import AES
14 | import os
15 | import sys
16 | #import tkinter
17 | #import tkinter.filedialog as tkFileDialog
18 | Qt = QtCore.Qt
19 |
20 |
21 |
22 | # master = Tk()
23 | # master.wm_title("Image Encryption using AES")
24 | # l2=Label(master, text="Key")
25 |
26 | # l2.pack()
27 | # e2 = Entry(master)
28 | # e2.pack()
29 | # e2.focus_set()
30 |
31 | # label = Label (master, text="")
32 | # label.pack()
33 | # def callback():
34 | # file = tkFileDialog.askopenfile(parent=master,mode='rb',title='Choose a file')
35 | # print(type(file))
36 | # print(file)
37 | # if file != None:
38 | # data = file.read()
39 | # print(data)
40 | # print(type(data))
41 | # stri = base64.b64encode(data)
42 | # myKey=e2.get()
43 | # x = Encrypter(stri, myKey)
44 | # cipher = x.encrypt_image()
45 | # x = Decrypter(cipher)
46 | # x.decrypt_image(myKey)
47 | # label.configure(text= "Cipher: " + cipher.decode('utf-8'),font=("Helvetica", 8))
48 | # b = Button(master, text="Encrypt", width=10, command=callback)
49 | # b.pack()
50 | # master.mainloop()
51 | ui, _ = loadUiType('ui.ui')
52 | def start():
53 | global m
54 | m = Main_Window()
55 | m.show()
56 |
57 | class encrypt_page():
58 | def __init__(self):
59 | self.file={}
60 | self.stri=""
61 | self.Handel_Buttons()
62 | self.pushButton_3.clicked.connect(self.chooseFile)
63 | self.pushButton_4.clicked.connect(self.onClickEncrypt)
64 | def Handel_Buttons(self):
65 | self.pushButton.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(1))
66 | def chooseFile(self):
67 | self.file = QFileDialog.getOpenFileName(self, 'Open File')
68 | pixmap = QtGui.QPixmap(self.file[0])
69 | self.lbl.setPixmap(pixmap.scaledToHeight(201))
70 | if self.file != None:
71 | ba = QtCore.QByteArray()
72 | buff = QtCore.QBuffer(ba)
73 | buff.open(QtCore.QIODevice.WriteOnly)
74 | ok = pixmap.save(buff, "PNG")
75 | assert ok
76 | pixmap_bytes = ba.data()
77 | #print(type(pixmap_bytes))
78 | #data = self.file[0]
79 | self.stri = base64.b64encode(pixmap_bytes)
80 |
81 | def onClickEncrypt(self):
82 | myKey=self.lineEdit.text()
83 | # print(type(myKey))
84 | # print(myKey)
85 |
86 | x = Encrypter(self.stri, myKey)
87 | cipher = x.encrypt_image()
88 | # print(type(cipher))
89 | # name = QFileDialog.getSaveFileName(self, 'Save File')
90 | # file = open(name,'w')
91 | # text = cipher
92 | # file.write(text)
93 | # file.close()
94 | #fh.write(base64_decoded.decode('base64'))
95 | fh = open("cipher.txt", "wb")
96 | fh.write(cipher)
97 | fh.close()
98 | # cipherd = base64.b64decode(cipher.decode('utf-8'))
99 | # ba = QtCore.QByteArray(cipherd)
100 | # pixmap = QtGui.QPixmap()
101 | # ok = pixmap.loadFromData(ba, "PNG")
102 | #assert ok
103 | #self.lbl.setPixmap(pixmap.scaledToHeight(201))
104 | #x = Decrypter(cipher)
105 | #x.decrypt_image(myKey)
106 |
107 | class decrypt_page():
108 | def __init__(self):
109 | self.cipher={}
110 | self.Handel_Buttons()
111 | self.pushButton_5.clicked.connect(self.chooseFile1)
112 | self.pushButton_6.clicked.connect(self.onClickDecrypt)
113 | def Handel_Buttons(self):
114 | self.pushButton.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(1))
115 | def chooseFile1(self):
116 | file = QFileDialog.getOpenFileName(self, 'Open File')
117 | text=open(file[0]).read()
118 | #print(text.encode('utf-8'))
119 | self.cipher= text.encode('utf-8')
120 | def onClickDecrypt(self):
121 | myKey=self.lineEdit_2.text()
122 | x = Decrypter(self.cipher)
123 | image=x.decrypt_image(myKey)
124 |
125 | ba = QtCore.QByteArray(image)
126 | pixmap = QtGui.QPixmap()
127 | ok = pixmap.loadFromData(ba, "PNG")
128 | assert ok
129 | self.lbl_2.setPixmap(pixmap.scaledToHeight(201))
130 | # if image!=None:
131 | # ba = QtCore.QByteArray()
132 | # buff = QtCore.QBuffer(ba)
133 | # buff.open(QtCore.QIODevice.WriteOnly)
134 | # ok = pixmap.save(buff, "PNG")
135 | # assert ok
136 | # pixmap_bytes = ba.data()
137 | # #print(type(pixmap_bytes))
138 | # #data = self.file[0]
139 | # self.stri = base64.b64encode(pixmap_bytes)
140 |
141 | class Main_Window(QMainWindow, QWidget, ui,encrypt_page,decrypt_page):
142 | def __init__(self):
143 | QMainWindow.__init__(self)
144 | QWidget.__init__(self)
145 | self.setupUi(self)
146 | encrypt_page.__init__(self)
147 | decrypt_page.__init__(self)
148 |
149 | self.Handel_Buttons()
150 | self.stackedWidget.setCurrentIndex(0)
151 | def Handel_Buttons(self):
152 | self.pushButton.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(1))
153 | self.pushButton_2.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(2))
154 | self.pushButton_8.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(0))
155 | self.pushButton_7.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(0))
156 |
157 | if __name__ == '__main__':
158 | app = QApplication(sys.argv)
159 | #connect()
160 | window = start()
161 | app.exec_()
--------------------------------------------------------------------------------
/ui.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 788
10 | 523
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 |
19 |
20 | 10
21 | 8
22 | 771
23 | 491
24 |
25 |
26 |
27 |
28 | 0
29 | 0
30 |
31 |
32 |
33 | 2
34 |
35 |
36 |
37 |
38 |
39 | 260
40 | 120
41 | 231
42 | 221
43 |
44 |
45 |
46 |
47 | 0
48 |
49 | -
50 |
51 |
52 | true
53 |
54 |
55 |
56 | 0
57 | 0
58 |
59 |
60 |
61 |
62 | 0
63 | 40
64 |
65 |
66 |
67 | Encrypt
68 |
69 |
70 |
71 | -
72 |
73 |
74 |
75 | 0
76 | 40
77 |
78 |
79 |
80 | Decrypt
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | 140
90 | 30
91 | 511
92 | 61
93 |
94 |
95 |
96 |
97 | 24
98 |
99 |
100 |
101 | Select Option to Encrypt or decrypt
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | 190
110 | 80
111 | 391
112 | 52
113 |
114 |
115 |
116 | -
117 |
118 |
119 |
120 | 16
121 |
122 |
123 |
124 | Enter Key:
125 |
126 |
127 |
128 | -
129 |
130 |
131 |
132 | 0
133 | 25
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 | 320
144 | 140
145 | 100
146 | 30
147 |
148 |
149 |
150 | Choose File
151 |
152 |
153 |
154 |
155 |
156 | 320
157 | 430
158 | 100
159 | 50
160 |
161 |
162 |
163 | Encypt
164 |
165 |
166 |
167 |
168 |
169 | 250
170 | 10
171 | 261
172 | 61
173 |
174 |
175 |
176 |
177 | 24
178 |
179 |
180 |
181 | Encrypt an Image
182 |
183 |
184 |
185 |
186 |
187 | 10
188 | 10
189 | 75
190 | 23
191 |
192 |
193 |
194 | back
195 |
196 |
197 |
198 |
199 |
200 | 180
201 | 180
202 | 401
203 | 241
204 |
205 |
206 |
207 | background-color:rgba(128,128,128,0.1)
208 |
209 |
210 | QFrame::Raised
211 |
212 |
213 |
214 |
215 |
216 | Qt::AlignCenter
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 | 310
225 | 180
226 | 100
227 | 50
228 |
229 |
230 |
231 | Decrypt
232 |
233 |
234 |
235 |
236 |
237 | 270
238 | 70
239 | 181
240 | 30
241 |
242 |
243 |
244 |
245 | 14
246 |
247 |
248 |
249 | Choose Cipher File
250 |
251 |
252 |
253 |
254 |
255 | 170
256 | 120
257 | 391
258 | 52
259 |
260 |
261 |
262 | -
263 |
264 |
265 |
266 | 16
267 |
268 |
269 |
270 | Enter Key:
271 |
272 |
273 |
274 | -
275 |
276 |
277 |
278 | 0
279 | 25
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 | 250
290 | 0
291 | 261
292 | 61
293 |
294 |
295 |
296 |
297 | 24
298 |
299 |
300 |
301 | Decypt an Image
302 |
303 |
304 |
305 |
306 |
307 | 10
308 | 10
309 | 75
310 | 23
311 |
312 |
313 |
314 | back
315 |
316 |
317 |
318 |
319 |
320 | 160
321 | 240
322 | 401
323 | 241
324 |
325 |
326 |
327 | background-color:rgba(128,128,128,0.1)
328 |
329 |
330 | QFrame::Raised
331 |
332 |
333 |
334 |
335 |
336 | Qt::AlignCenter
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
--------------------------------------------------------------------------------
/ui_2.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 788
10 | 523
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 |
19 |
20 | 10
21 | 8
22 | 771
23 | 491
24 |
25 |
26 |
27 |
28 | 0
29 | 0
30 |
31 |
32 |
33 | 2
34 |
35 |
36 |
37 |
38 |
39 | 260
40 | 120
41 | 231
42 | 221
43 |
44 |
45 |
46 |
47 | 0
48 |
49 | -
50 |
51 |
52 | true
53 |
54 |
55 |
56 | 0
57 | 0
58 |
59 |
60 |
61 |
62 | 0
63 | 40
64 |
65 |
66 |
67 | Encrypt
68 |
69 |
70 |
71 | -
72 |
73 |
74 |
75 | 0
76 | 40
77 |
78 |
79 |
80 | Decrypt
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | 140
90 | 30
91 | 511
92 | 61
93 |
94 |
95 |
96 |
97 | 24
98 |
99 |
100 |
101 | Select Option to Encrypt or decrypt
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | 190
110 | 80
111 | 391
112 | 52
113 |
114 |
115 |
116 | -
117 |
118 |
119 |
120 | 16
121 |
122 |
123 |
124 | Enter Key:
125 |
126 |
127 |
128 | -
129 |
130 |
131 |
132 | 0
133 | 25
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 | 320
144 | 140
145 | 100
146 | 30
147 |
148 |
149 |
150 | Choose File
151 |
152 |
153 |
154 |
155 |
156 | 320
157 | 430
158 | 100
159 | 50
160 |
161 |
162 |
163 | Encypt
164 |
165 |
166 |
167 |
168 |
169 | 250
170 | 10
171 | 261
172 | 61
173 |
174 |
175 |
176 |
177 | 24
178 |
179 |
180 |
181 | Encrypt an Image
182 |
183 |
184 |
185 |
186 |
187 | 10
188 | 10
189 | 75
190 | 23
191 |
192 |
193 |
194 | back
195 |
196 |
197 |
198 |
199 |
200 | 10
201 | 210
202 | 321
203 | 201
204 |
205 |
206 |
207 | background-color:rgba(128,128,128,0.1)
208 |
209 |
210 | QFrame::Raised
211 |
212 |
213 |
214 |
215 |
216 | Qt::AlignCenter
217 |
218 |
219 |
220 |
221 |
222 | 410
223 | 210
224 | 321
225 | 201
226 |
227 |
228 |
229 | background-color:rgba(128,128,128,0.1)
230 |
231 |
232 |
233 |
234 |
235 | Qt::AlignCenter
236 |
237 |
238 |
239 |
240 |
241 | 110
242 | 180
243 | 111
244 | 21
245 |
246 |
247 |
248 |
249 | 12
250 |
251 |
252 |
253 | Original Image
254 |
255 |
256 |
257 |
258 |
259 | 520
260 | 180
261 | 121
262 | 21
263 |
264 |
265 |
266 |
267 | 12
268 |
269 |
270 |
271 | Encypted Image
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 | 310
280 | 180
281 | 100
282 | 50
283 |
284 |
285 |
286 | Decrypt
287 |
288 |
289 |
290 |
291 |
292 | 270
293 | 70
294 | 181
295 | 30
296 |
297 |
298 |
299 |
300 | 14
301 |
302 |
303 |
304 | Choose Cipher File
305 |
306 |
307 |
308 |
309 |
310 | 170
311 | 120
312 | 391
313 | 52
314 |
315 |
316 |
317 | -
318 |
319 |
320 |
321 | 16
322 |
323 |
324 |
325 | Enter Key:
326 |
327 |
328 |
329 | -
330 |
331 |
332 |
333 | 0
334 | 25
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 | 250
345 | 0
346 | 261
347 | 61
348 |
349 |
350 |
351 |
352 | 24
353 |
354 |
355 |
356 | Decypt an Image
357 |
358 |
359 |
360 |
361 |
362 | 140
363 | 240
364 | 471
365 | 192
366 |
367 |
368 |
369 |
370 |
371 |
372 | 10
373 | 10
374 | 75
375 | 23
376 |
377 |
378 |
379 | back
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
--------------------------------------------------------------------------------
/ui_2.ui.bak:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 788
10 | 523
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 |
19 |
20 | 10
21 | 8
22 | 771
23 | 491
24 |
25 |
26 |
27 |
28 | 0
29 | 0
30 |
31 |
32 |
33 | 1
34 |
35 |
36 |
37 |
38 |
39 | 260
40 | 120
41 | 231
42 | 221
43 |
44 |
45 |
46 |
47 | 0
48 |
49 | -
50 |
51 |
52 | true
53 |
54 |
55 |
56 | 0
57 | 0
58 |
59 |
60 |
61 |
62 | 0
63 | 40
64 |
65 |
66 |
67 | Encrypt
68 |
69 |
70 |
71 | -
72 |
73 |
74 |
75 | 0
76 | 40
77 |
78 |
79 |
80 | Decrypt
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | 140
90 | 30
91 | 511
92 | 61
93 |
94 |
95 |
96 |
97 | 24
98 |
99 |
100 |
101 | Select Option to Encrypt or decrypt
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | 190
110 | 80
111 | 391
112 | 52
113 |
114 |
115 |
116 | -
117 |
118 |
119 |
120 | 16
121 |
122 |
123 |
124 | Enter Key:
125 |
126 |
127 |
128 | -
129 |
130 |
131 |
132 | 0
133 | 25
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 | 320
144 | 140
145 | 100
146 | 30
147 |
148 |
149 |
150 | Choose File
151 |
152 |
153 |
154 |
155 |
156 | 320
157 | 430
158 | 100
159 | 50
160 |
161 |
162 |
163 | Encypt
164 |
165 |
166 |
167 |
168 |
169 | 250
170 | 10
171 | 261
172 | 61
173 |
174 |
175 |
176 |
177 | 24
178 |
179 |
180 |
181 | Encrypt an Image
182 |
183 |
184 |
185 |
186 |
187 | 10
188 | 10
189 | 75
190 | 23
191 |
192 |
193 |
194 | back
195 |
196 |
197 |
198 |
199 |
200 | 10
201 | 210
202 | 321
203 | 201
204 |
205 |
206 |
207 | background-color:rgba(128,128,128,0.1)
208 |
209 |
210 | QFrame::Raised
211 |
212 |
213 |
214 |
215 |
216 | Qt::AlignCenter
217 |
218 |
219 |
220 |
221 |
222 | 410
223 | 210
224 | 321
225 | 201
226 |
227 |
228 |
229 | background-color:rgba(128,128,128,0.1)
230 |
231 |
232 |
233 |
234 |
235 | Qt::AlignCenter
236 |
237 |
238 |
239 |
240 |
241 | 110
242 | 180
243 | 111
244 | 21
245 |
246 |
247 |
248 |
249 | 12
250 |
251 |
252 |
253 | Original Image
254 |
255 |
256 |
257 |
258 |
259 | 520
260 | 180
261 | 121
262 | 21
263 |
264 |
265 |
266 |
267 | 12
268 |
269 |
270 |
271 | Encypted Image
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 | 310
280 | 180
281 | 100
282 | 50
283 |
284 |
285 |
286 | Decrypt
287 |
288 |
289 |
290 |
291 |
292 | 270
293 | 70
294 | 181
295 | 30
296 |
297 |
298 |
299 |
300 | 14
301 |
302 |
303 |
304 | Choose Cipher File
305 |
306 |
307 |
308 |
309 |
310 | 170
311 | 120
312 | 391
313 | 52
314 |
315 |
316 |
317 | -
318 |
319 |
320 |
321 | 16
322 |
323 |
324 |
325 | Enter Key:
326 |
327 |
328 |
329 | -
330 |
331 |
332 |
333 | 0
334 | 25
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 | 250
345 | 0
346 | 261
347 | 61
348 |
349 |
350 |
351 |
352 | 24
353 |
354 |
355 |
356 | Decypt an Image
357 |
358 |
359 |
360 |
361 |
362 | 140
363 | 240
364 | 471
365 | 192
366 |
367 |
368 |
369 |
370 |
371 |
372 | 10
373 | 10
374 | 75
375 | 23
376 |
377 |
378 |
379 | back
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
--------------------------------------------------------------------------------
/ui_2.ui.bak1:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 788
10 | 523
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 |
19 |
20 | 10
21 | 8
22 | 771
23 | 491
24 |
25 |
26 |
27 |
28 | 0
29 | 0
30 |
31 |
32 |
33 | 1
34 |
35 |
36 |
37 |
38 |
39 | 260
40 | 120
41 | 231
42 | 221
43 |
44 |
45 |
46 |
47 | 0
48 |
49 | -
50 |
51 |
52 | true
53 |
54 |
55 |
56 | 0
57 | 0
58 |
59 |
60 |
61 |
62 | 0
63 | 40
64 |
65 |
66 |
67 | Encrypt
68 |
69 |
70 |
71 | -
72 |
73 |
74 |
75 | 0
76 | 40
77 |
78 |
79 |
80 | Decrypt
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | 140
90 | 30
91 | 511
92 | 61
93 |
94 |
95 |
96 |
97 | 24
98 |
99 |
100 |
101 | Select Option to Encrypt or decrypt
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | 190
110 | 80
111 | 391
112 | 52
113 |
114 |
115 |
116 | -
117 |
118 |
119 |
120 | 16
121 |
122 |
123 |
124 | Enter Key:
125 |
126 |
127 |
128 | -
129 |
130 |
131 |
132 | 0
133 | 25
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 | 320
144 | 140
145 | 100
146 | 30
147 |
148 |
149 |
150 | Choose File
151 |
152 |
153 |
154 |
155 |
156 | 320
157 | 430
158 | 100
159 | 50
160 |
161 |
162 |
163 | Encypt
164 |
165 |
166 |
167 |
168 |
169 | 250
170 | 10
171 | 261
172 | 61
173 |
174 |
175 |
176 |
177 | 24
178 |
179 |
180 |
181 | Encrypt an Image
182 |
183 |
184 |
185 |
186 |
187 | 10
188 | 10
189 | 75
190 | 23
191 |
192 |
193 |
194 | back
195 |
196 |
197 |
198 |
199 |
200 | 10
201 | 210
202 | 321
203 | 201
204 |
205 |
206 |
207 | background-color:rgba(128,128,128,0.1)
208 |
209 |
210 | QFrame::Raised
211 |
212 |
213 |
214 |
215 |
216 | Qt::AlignCenter
217 |
218 |
219 |
220 |
221 |
222 | 410
223 | 210
224 | 321
225 | 201
226 |
227 |
228 |
229 | background-color:rgba(128,128,128,0.1)
230 |
231 |
232 |
233 |
234 |
235 | Qt::AlignCenter
236 |
237 |
238 |
239 |
240 |
241 | 110
242 | 180
243 | 111
244 | 21
245 |
246 |
247 |
248 |
249 | 12
250 |
251 |
252 |
253 | Original Image
254 |
255 |
256 |
257 |
258 |
259 | 520
260 | 180
261 | 121
262 | 21
263 |
264 |
265 |
266 |
267 | 12
268 |
269 |
270 |
271 | Encypted Image
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 | 310
280 | 180
281 | 100
282 | 50
283 |
284 |
285 |
286 | Decrypt
287 |
288 |
289 |
290 |
291 |
292 | 270
293 | 70
294 | 181
295 | 30
296 |
297 |
298 |
299 |
300 | 14
301 |
302 |
303 |
304 | Choose Cipher File
305 |
306 |
307 |
308 |
309 |
310 | 170
311 | 120
312 | 391
313 | 52
314 |
315 |
316 |
317 | -
318 |
319 |
320 |
321 | 16
322 |
323 |
324 |
325 | Enter Key:
326 |
327 |
328 |
329 | -
330 |
331 |
332 |
333 | 0
334 | 25
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 | 250
345 | 0
346 | 261
347 | 61
348 |
349 |
350 |
351 |
352 | 24
353 |
354 |
355 |
356 | Decypt an Image
357 |
358 |
359 |
360 |
361 |
362 | 140
363 | 240
364 | 471
365 | 192
366 |
367 |
368 |
369 |
370 |
371 |
372 | 10
373 | 10
374 | 75
375 | 23
376 |
377 |
378 |
379 | back
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
--------------------------------------------------------------------------------