Skip to content

Commit fb2baba

Browse files
author
Ankit Yadav
committed
Initial Commit
0 parents  commit fb2baba

File tree

2 files changed

+280
-0
lines changed

2 files changed

+280
-0
lines changed

encdec.py

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
# -*- coding: utf-8 -*-
2+
3+
# Form implementation generated from reading ui file 'encdec.ui'
4+
#
5+
# Created by: PyQt5 UI code generator 5.15.4
6+
#
7+
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
8+
# run again. Do not edit this file unless you know what you are doing.
9+
10+
11+
from PyQt5 import QtCore, QtGui, QtWidgets
12+
from PyQt5.QtWidgets import QFileDialog
13+
import os
14+
import main
15+
16+
class Ui_MainWindow(object):
17+
def setupUi(self, MainWindow):
18+
MainWindow.setObjectName("MainWindow")
19+
MainWindow.resize(800, 600)
20+
self.centralwidget = QtWidgets.QWidget(MainWindow)
21+
self.centralwidget.setObjectName("centralwidget")
22+
self.tab = QtWidgets.QTabWidget(self.centralwidget)
23+
self.tab.setGeometry(QtCore.QRect(0, 0, 800, 550))
24+
font = QtGui.QFont()
25+
font.setPointSize(15)
26+
self.tab.setFont(font)
27+
self.tab.setLayoutDirection(QtCore.Qt.LeftToRight)
28+
self.tab.setAutoFillBackground(False)
29+
self.tab.setObjectName("tab")
30+
self.enc_tab = QtWidgets.QWidget()
31+
self.enc_tab.setObjectName("enc_tab")
32+
self.enc_edit = QtWidgets.QLineEdit(self.enc_tab)
33+
self.enc_edit.setGeometry(QtCore.QRect(210, 120, 391, 31))
34+
self.enc_edit.setObjectName("enc_edit")
35+
self.enc_label = QtWidgets.QLabel(self.enc_tab)
36+
self.enc_label.setGeometry(QtCore.QRect(70, 120, 61, 31))
37+
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
38+
sizePolicy.setHorizontalStretch(15)
39+
sizePolicy.setVerticalStretch(15)
40+
sizePolicy.setHeightForWidth(self.enc_label.sizePolicy().hasHeightForWidth())
41+
self.enc_label.setSizePolicy(sizePolicy)
42+
font = QtGui.QFont()
43+
font.setPointSize(13)
44+
self.enc_label.setFont(font)
45+
self.enc_label.setObjectName("enc_label")
46+
self.enc_button = QtWidgets.QPushButton(self.enc_tab)
47+
self.enc_button.setGeometry(QtCore.QRect(290, 280, 171, 61))
48+
self.enc_button.setObjectName("enc_button")
49+
self.enc_browse = QtWidgets.QPushButton(self.enc_tab)
50+
self.enc_browse.setGeometry(QtCore.QRect(660, 120, 90, 28))
51+
self.enc_browse.setObjectName("enc_browse")
52+
self.tab.addTab(self.enc_tab, "")
53+
self.dec_tab = QtWidgets.QWidget()
54+
self.dec_tab.setObjectName("dec_tab")
55+
self.dec_edit = QtWidgets.QLineEdit(self.dec_tab)
56+
self.dec_edit.setGeometry(QtCore.QRect(180, 110, 391, 31))
57+
self.dec_edit.setObjectName("dec_edit")
58+
self.dec_browse = QtWidgets.QPushButton(self.dec_tab)
59+
self.dec_browse.setGeometry(QtCore.QRect(630, 110, 90, 28))
60+
self.dec_browse.setObjectName("dec_browse")
61+
self.dec_label = QtWidgets.QLabel(self.dec_tab)
62+
self.dec_label.setGeometry(QtCore.QRect(50, 110, 61, 31))
63+
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
64+
sizePolicy.setHorizontalStretch(15)
65+
sizePolicy.setVerticalStretch(15)
66+
sizePolicy.setHeightForWidth(self.dec_label.sizePolicy().hasHeightForWidth())
67+
self.dec_label.setSizePolicy(sizePolicy)
68+
font = QtGui.QFont()
69+
font.setPointSize(13)
70+
self.dec_label.setFont(font)
71+
self.dec_label.setObjectName("dec_label")
72+
self.key_edit = QtWidgets.QLineEdit(self.dec_tab)
73+
self.key_edit.setGeometry(QtCore.QRect(180, 190, 391, 31))
74+
self.key_edit.setObjectName("key_edit")
75+
self.key_browse = QtWidgets.QPushButton(self.dec_tab)
76+
self.key_browse.setGeometry(QtCore.QRect(630, 190, 90, 28))
77+
self.key_browse.setObjectName("key_browse")
78+
self.key_label = QtWidgets.QLabel(self.dec_tab)
79+
self.key_label.setGeometry(QtCore.QRect(50, 190, 61, 31))
80+
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
81+
sizePolicy.setHorizontalStretch(15)
82+
sizePolicy.setVerticalStretch(15)
83+
sizePolicy.setHeightForWidth(self.key_label.sizePolicy().hasHeightForWidth())
84+
self.key_label.setSizePolicy(sizePolicy)
85+
font = QtGui.QFont()
86+
font.setPointSize(13)
87+
self.key_label.setFont(font)
88+
self.key_label.setObjectName("key_label")
89+
self.dec_button = QtWidgets.QPushButton(self.dec_tab)
90+
self.dec_button.setGeometry(QtCore.QRect(300, 320, 171, 61))
91+
self.dec_button.setObjectName("dec_button")
92+
self.tab.addTab(self.dec_tab, "")
93+
MainWindow.setCentralWidget(self.centralwidget)
94+
self.menubar = QtWidgets.QMenuBar(MainWindow)
95+
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
96+
self.menubar.setObjectName("menubar")
97+
MainWindow.setMenuBar(self.menubar)
98+
self.statusbar = QtWidgets.QStatusBar(MainWindow)
99+
self.statusbar.setObjectName("statusbar")
100+
MainWindow.setStatusBar(self.statusbar)
101+
102+
self.error=QtWidgets.QLabel(MainWindow)
103+
self.error.move(10,565)
104+
self.error.setText("Status : ")
105+
self.error.adjustSize()
106+
107+
self.enc_browse.clicked.connect(self.browse_file_enc)
108+
self.dec_browse.clicked.connect(self.browse_file_dec)
109+
self.key_browse.clicked.connect(self.browse_file_key)
110+
self.enc_button.clicked.connect(self.encrypt)
111+
self.dec_button.clicked.connect(self.decrypt)
112+
113+
self.retranslateUi(MainWindow)
114+
self.tab.setCurrentIndex(0)
115+
QtCore.QMetaObject.connectSlotsByName(MainWindow)
116+
117+
def retranslateUi(self, MainWindow):
118+
_translate = QtCore.QCoreApplication.translate
119+
MainWindow.setWindowTitle(_translate("MainWindow", "ENC-DEC"))
120+
self.enc_label.setText(_translate("MainWindow", "FILE"))
121+
self.enc_button.setText(_translate("MainWindow", "ENCRYPT"))
122+
self.enc_browse.setText(_translate("MainWindow", "BROWSE"))
123+
self.tab.setTabText(self.tab.indexOf(self.enc_tab), _translate("MainWindow", "ENCRYPT"))
124+
self.dec_browse.setText(_translate("MainWindow", "BROWSE"))
125+
self.dec_label.setText(_translate("MainWindow", "FILE"))
126+
self.key_browse.setText(_translate("MainWindow", "BROWSE"))
127+
self.key_label.setText(_translate("MainWindow", "KEY"))
128+
self.dec_button.setText(_translate("MainWindow", "DECRYPT"))
129+
self.tab.setTabText(self.tab.indexOf(self.dec_tab), _translate("MainWindow", "DECRYPT"))
130+
131+
# dir_curr=os.path.dirname(os.path.realpath(__file__))
132+
dir_curr=os.getcwd()
133+
134+
def browse_file_enc(self):
135+
self.error.setText("Status : ")
136+
br=QFileDialog.getOpenFileName(self.enc_tab, 'open file',self.dir_curr, 'text files(*.txt)')
137+
self.enc_edit.setText(br[0])
138+
139+
def browse_file_dec(self):
140+
self.error.setText("Status : ")
141+
br=QFileDialog.getOpenFileName(self.dec_tab, 'open file', self.dir_curr, 'text files(*.txt)')
142+
self.dec_edit.setText(br[0])
143+
144+
def browse_file_key(self):
145+
self.error.setText("Status : ")
146+
br=br=QFileDialog.getOpenFileName(self.dec_tab, 'open file', self.dir_curr, 'key files(*.key)')
147+
self.key_edit.setText(br[0])
148+
149+
def encrypt(self):
150+
if not self.enc_edit.text():
151+
self.setStatus("Please input a file to encrypt")
152+
return
153+
try:
154+
main.encryptfile(self.enc_edit.text())
155+
self.setStatus("File successfully encrypted!")
156+
except FileNotFoundError:
157+
self.setStatus("File not found!")
158+
return
159+
except:
160+
self.setStatus("Unknown Error!")
161+
return
162+
def decrypt(self):
163+
if not self.dec_edit.text():
164+
self.setStatus("Please input a file to decrypt!")
165+
return
166+
elif not self.key_edit.text():
167+
self.setStatus("Please input a key file!")
168+
return
169+
try:
170+
main.decryptfile(self.dec_edit.text(),self.key_edit.text())
171+
self.setStatus("File successfully decrypted!")
172+
except FileNotFoundError:
173+
self.setStatus("File not found!")
174+
return
175+
except:
176+
self.setStatus("Unknown Error!")
177+
return
178+
179+
def setStatus(self,err):
180+
self.error.setText('Status : '+err)
181+
self.error.adjustSize()
182+
183+
if __name__ == "__main__":
184+
import sys
185+
app = QtWidgets.QApplication(sys.argv)
186+
MainWindow = QtWidgets.QMainWindow()
187+
ui = Ui_MainWindow()
188+
ui.setupUi(MainWindow)
189+
MainWindow.show()
190+
sys.exit(app.exec_())

main.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
import os
2+
import string
3+
import random
4+
5+
def encrypt(str,r):
6+
asc = string.ascii_letters+"@ 1234567890.+-*/<>?;:{[]}=_()&^%$#!~`,'"
7+
if(asc.index(str)+r>len(asc)-1):
8+
return asc[asc.index(str)+r-len(asc)]
9+
else:
10+
return asc[asc.index(str)+r]
11+
12+
def decrypt(str,r):
13+
asc = string.ascii_letters+"@ 1234567890.+-*/<>?;:{[]}=_()&^%$#!~`,'"
14+
return asc[asc.index(str)-r]
15+
16+
17+
18+
def encryptfile(f):
19+
file=open(f,"r")
20+
arr=f.split('.txt')
21+
temp=f
22+
f=arr[-2]
23+
encfile=open(f+"_enc.txt","a")
24+
encfile.truncate(0)
25+
keyfile=open(f+".key","a")
26+
keyfile.truncate(0)
27+
for j in file:
28+
str_ori=j
29+
enc=""
30+
key=[]
31+
32+
for i in str_ori:
33+
if i=="\n":
34+
break
35+
r=random.randint(0,91)
36+
enc+=encrypt(i,r)
37+
key.append(r)
38+
for k in range(0,len(key)):
39+
if k==len(key)-1:
40+
keyfile.write(str(key[k])+"\n")
41+
else:
42+
keyfile.write(str(key[k]) + " ")
43+
44+
encfile.write(enc+"\n")
45+
file.close()
46+
encfile.close()
47+
keyfile.close()
48+
os.remove(temp)
49+
def decryptfile(f,k):
50+
encfile=open(f,"r")
51+
arr=k.split('.key')
52+
temp=f
53+
f=arr[-2]
54+
decfile = open(f+".txt", "a")
55+
keyfile = open(k, "r")
56+
for str in encfile:
57+
for keystr in keyfile:
58+
key=keystr.split()
59+
dec=""
60+
for i in range(len(key)):
61+
dec+=decrypt(str[i],int(key[i]))
62+
decfile.write(dec+"\n")
63+
break
64+
decfile.close()
65+
keyfile.close()
66+
encfile.close()
67+
os.remove(temp)
68+
os.remove(k)
69+
70+
def insert():
71+
try:
72+
if open("sample.txt"):
73+
pass
74+
except FileNotFoundError:
75+
print("You need to decrypt first")
76+
encdec()
77+
exit(0)
78+
str = input("Enter the name of website and password separated by space\n")
79+
if(str.count(' ')!=1):
80+
print("Please enter a valid input")
81+
insert()
82+
exit(0)
83+
file=open("sample.txt","a")
84+
file.write(str+"\n")
85+
print("Successfully added")
86+
file.close()
87+
88+
89+
90+

0 commit comments

Comments
 (0)