-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPySafe.py
124 lines (109 loc) · 3.45 KB
/
PySafe.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import os.path
import tkinter as tk
from cryptography.fernet import Fernet
def checkExistance():
if os.path.exists("password.txt"):
pass
else:
file = open("password.txt", "w")
file.write("0\n")
file.close()
def appendNew():
file = open("password.txt", "a")
website = input("Enter the website name: ")
password = input("Enter the password: ")
web = website + "\n"
passwrd = "Password: " + password + "\n"
file.write("---------------------------\n")
file.write(web.lower())
file.write(passwrd)
file.close()
def readpasswords():
file = open("password.txt", "r")
print(file.read())
file.close()
def readpassword(string):
file = open("password.txt", "r")
lineCount = 0
for line in file:
lineCount += 1
if string.lower() == line.rstrip():
print(str(file.readlines(lineCount + 1)).replace(r"\n", ""))
break
def program():
checkExistance()
passwordLimit = 100
Input = input("What would you like to do. 1 = Add Password 2 = Read All Passwords 3 = Read Specific Password: ")
if Input == "1":
file = open("password.txt", "r")
f = file.readlines()
passnum = f[0]
file.close()
for passnum in range(passwordLimit):
passnum += 1
with open("password.txt") as f:
lines = f.readlines()
lines[0] = str(passnum) + "\n"
with open("password.txt", "w") as f:
f.writelines(lines)
appendNew()
another = input("Would you like to add another password, type yes or no: ")
if another.lower() == "no":
break
elif Input == "2":
readpasswords()
elif Input == "3":
find = input("Name the application")
readpassword(find)
def writeKey():
key = Fernet.generate_key()
with open("key.key", "wb") as key_file:
key_file.write(key)
def loadKey():
return open("key.key", "rb").read()
def encrypt(filename, key):
f = Fernet(key)
with open(filename, "rb") as file:
file_data = file.read()
encryptedData = f.encrypt(file_data)
with open(filename, "wb") as file:
file.write(encryptedData)
def decrypt(filename, key):
f = Fernet(key)
with open(filename, "rb") as file:
encryptedData = file.read()
decryptedData = f.decrypt(encryptedData)
with open(filename, "wb") as file:
file.write(decryptedData)
def runProgram(true):
while true:
program()
close = input("Would you like to exit the program, type yes or no: ")
if close.lower() == "yes":
encrypt("password.txt", key)
break
if __name__ == '__main__':
master = "12345678"
if master == input("Enter master password: "):
run = True
if os.path.exists("key.txt"):
pass
else:
ke = open("key.txt", "w")
ke.write("0")
ke.close()
ke = open("key.txt", "r")
k = ke.readlines()
ke.close()
if k[0] == "0":
writeKey()
ke = open("key.txt", "w")
ke.writelines("1")
key = loadKey()
runProgram(run)
else:
key = loadKey()
decrypt("password.txt", key)
runProgram(run)
else:
exit()