├── 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 | --------------------------------------------------------------------------------