Skip to content

Commit b5b857a

Browse files
authored
Add files via upload
1 parent af6073a commit b5b857a

File tree

2 files changed

+129
-110
lines changed

2 files changed

+129
-110
lines changed

passwdmanager.exe

9.83 KB
Binary file not shown.

passwdmanager.py

Lines changed: 129 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -15,58 +15,90 @@
1515
from cryptography.hazmat.primitives import hashes
1616
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
1717

18-
#enter user and password for database and master password
19-
user = input("Enter database username: ")
20-
passwd = getpass.getpass("Enter database password: ")
21-
k = getpass.getpass("Enter master password: ")
22-
23-
if user=='' or passwd=='' or k=='': #detect blank input
24-
print("\033[1;31;40m Error username or password.Plese try again\033[1;37;40m\n")
25-
else:
26-
#connect to database
27-
mydb = mysql.connector.connect(
28-
host='localhost', #or your hostname/ip-address
29-
user=(user),
30-
password=(passwd)
31-
)
32-
33-
#set cursor
34-
mycursor = mydb.cursor(buffered=True)
35-
d = mydb.cursor(buffered=True)
36-
i = mydb.cursor(buffered=True)
37-
38-
#detect and create database
39-
mycursor.execute('CREATE DATABASE IF NOT EXISTS db_password')
40-
mycursor.execute('CREATE TABLE IF NOT EXISTS db_password.tb_nap (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL,PRIMARY KEY (id))')
41-
42-
#interfaces
43-
print("\n\nWelcome to password manager python! what you want to do?(v to view all your password,i to insert,d to delete")
44-
cmd = input(">")
45-
46-
#view query
47-
if cmd == 'v' or cmd == 'V':
48-
mycursor.execute("SELECT id, name FROM db_password.tb_nap") #select id,name from database
49-
myresult = mycursor.fetchall()
50-
51-
if len(myresult)==0: #detect blank input
52-
print("Nothing here\n")
53-
else:
54-
print("What you wanna see?")
55-
for x in myresult :
56-
print(x)
57-
58-
icmd = input("Enter ID:")
59-
if icmd=='':
60-
print("\033[1;31;40m Error id. \033[1;37;40m\n")
18+
def enter():
19+
#enter user and password for database and master password
20+
enter.user = input("Enter database username: ")
21+
enter.passwd = getpass.getpass("Enter database password: ")
22+
enter.k = getpass.getpass("Enter master password: ")
23+
func()
24+
25+
def func():
26+
if enter.user=='' or enter.passwd=='' or enter.k=='': #detect blank input
27+
print("\033[1;31;40m Error username or password.Plese try again\033[1;37;40m\n")
28+
enter()
29+
else:
30+
#connect to database
31+
mydb = mysql.connector.connect(
32+
host='localhost', #or your hostname/ip-address
33+
user=(enter.user),
34+
password=(enter.passwd)
35+
)
36+
37+
#set cursor
38+
mycursor = mydb.cursor(buffered=True)
39+
d = mydb.cursor(buffered=True)
40+
i = mydb.cursor(buffered=True)
41+
42+
#detect and create database
43+
mycursor.execute('CREATE DATABASE IF NOT EXISTS db_password')
44+
mycursor.execute('CREATE TABLE IF NOT EXISTS db_password.tb_nap (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL,PRIMARY KEY (id))')
45+
46+
#interfaces
47+
print("\n\nWelcome to password manager python! what you want to do?(v to view all your password,i to insert,d to delete,q to exit)")
48+
cmd = input(">")
49+
50+
#view query
51+
if cmd == 'v' or cmd == 'V':
52+
mycursor.execute("SELECT id, name FROM db_password.tb_nap") #select id,name from database
53+
myresult = mycursor.fetchall()
54+
55+
if len(myresult)==0: #detect blank input
56+
print("Nothing here\n")
57+
else:
58+
print("What you wanna see?")
59+
for x in myresult :
60+
print(x)
61+
62+
icmd = input("Enter ID:")
63+
if icmd=='':
64+
print("\033[1;31;40m Error id. \033[1;37;40m\n")
65+
else:
66+
d.execute("SELECT id,name FROM db_password.tb_nap WHERE id= %s",(icmd,)) #select id,name from id input
67+
i.execute("SELECT password FROM db_password.tb_nap WHERE id= %s",(icmd,)) #select password from id input
68+
p = d.fetchall()
69+
i = i.fetchall()
70+
password = " , ".join( map(str, i) ) #transition list to string
71+
72+
k_encode = enter.k.encode() #encode key to byte
73+
p_encode = password.encode() #encode password to byte
74+
salt = b'`R\xf7\xc0\xf3+@\xdd~\xa4K1Ty\x83\x9a'
75+
kdf = PBKDF2HMAC(
76+
algorithm=hashes.SHA256(),
77+
length=32,
78+
salt=salt,
79+
iterations=100000,
80+
backend=default_backend()
81+
)
82+
key = base64.urlsafe_b64encode(kdf.derive(k_encode))
83+
f = Fernet(key) #ready to decrypt
84+
decrypted = decrypted = f.decrypt(p_encode) #decrypted
85+
ogpasswd = decrypted.decode() #decode from byte to string
86+
87+
print("Password for",p,"is",ogpasswd,"\n\n") #show id,name,password
88+
func()
89+
90+
91+
#insert
92+
elif cmd == 'i' or cmd == 'I':
93+
print("Insert name and password")
94+
n = input("name>")
95+
p = getpass.getpass("password>")
96+
97+
if n=='' or p=='': #detect blank input
98+
print("\033[1;31;40m Can't insert into database.Plese input all of data. \033[1;37;40m\n")
6199
else:
62-
d.execute("SELECT id,name FROM db_password.tb_nap WHERE id= %s",(icmd,)) #select id,name from id input
63-
i.execute("SELECT password FROM db_password.tb_nap WHERE id= %s",(icmd,)) #select password from id input
64-
p = d.fetchall()
65-
i = i.fetchall()
66-
password = " , ".join( map(str, i) ) #transition list to string
67-
68-
k_encode = k.encode() #encode key to byte
69-
p_encode = password.encode() #encode password to byte
100+
k_encode = enter.k.encode() #encode key to byte
101+
p_encode = p.encode() #encode password input to byte
70102
salt = b'`R\xf7\xc0\xf3+@\xdd~\xa4K1Ty\x83\x9a'
71103
kdf = PBKDF2HMAC(
72104
algorithm=hashes.SHA256(),
@@ -76,65 +108,52 @@
76108
backend=default_backend()
77109
)
78110
key = base64.urlsafe_b64encode(kdf.derive(k_encode))
79-
f = Fernet(key) #ready to decrypt
80-
decrypted = decrypted = f.decrypt(p_encode) #decrypted
81-
ogpasswd = decrypted.decode() #decode from byte to string
82-
83-
print("Password for",p,"is",ogpasswd,"\n\n") #show id,name,password
84-
85-
86-
#insert
87-
elif cmd == 'i' or cmd == 'I':
88-
print("Insert name and password")
89-
n = input("name>")
90-
p = getpass.getpass("password>")
91-
92-
if n=='' or p=='': #detect blank input
93-
print("\033[1;31;40m Can't insert into database.Plese input all of data. \033[1;37;40m\n")
94-
else:
95-
k_encode = k.encode() #encode key to byte
96-
p_encode = p.encode() #encode password input to byte
97-
salt = b'`R\xf7\xc0\xf3+@\xdd~\xa4K1Ty\x83\x9a'
98-
kdf = PBKDF2HMAC(
99-
algorithm=hashes.SHA256(),
100-
length=32,
101-
salt=salt,
102-
iterations=100000,
103-
backend=default_backend()
104-
)
105-
key = base64.urlsafe_b64encode(kdf.derive(k_encode))
106-
107-
f = Fernet(key) #ready to encrypt
108-
encrypted = f.encrypt(p_encode) #encrpyted
109-
110-
sql = "INSERT INTO db_password.tb_nap (name, password) VALUES (%s, %s)" #insert to table query
111-
val = (n, encrypted)
112-
mycursor.execute(sql, val)
113-
mydb.commit() #confirm operation to database
114-
115-
print(mycursor.rowcount, "password inserted\n\n") #show number(s) of query that have inserted
116-
117-
#delete
118-
elif cmd == 'd' or cmd == 'D':
119-
mycursor.execute("SELECT id,name FROM db_password.tb_nap") #select id,name from db
120-
myresult = mycursor.fetchall()
121-
for x in myresult: #show id,name query in database
122-
print("What you want to delete?")
123-
print(x)
124-
125-
i = input("Enter id:") #enter query id
126-
127-
if i=='': #detect blank input
128-
print("\033[1;31;40m Error id. \033[1;37;40m")
129-
else:
130-
sql = "DELETE FROM db_password.tb_nap WHERE id = %s" #delete from query id
131-
mycursor.execute(sql, (i,))
132-
mydb.commit() #confirm operation to database
133111

134-
print(mycursor.rowcount, "name and password deleted\n\n") #show number(s) of query that have deleted
112+
f = Fernet(key) #ready to encrypt
113+
encrypted = f.encrypt(p_encode) #encrpyted
114+
115+
sql = "INSERT INTO db_password.tb_nap (name, password) VALUES (%s, %s)" #insert to table query
116+
val = (n, encrypted)
117+
mycursor.execute(sql, val)
118+
mydb.commit() #confirm operation to database
119+
120+
print(mycursor.rowcount, "password inserted\n\n") #show number(s) of query that have inserted
121+
func()
135122

136-
#error
137-
else :
138-
print("\033[1;31;40m Error,Can't define command...plese try again \033[1;37;40m\n")
123+
#delete
124+
elif cmd == 'd' or cmd == 'D':
125+
mycursor.execute("SELECT id,name FROM db_password.tb_nap") #select id,name from db
126+
myresult = mycursor.fetchall()
127+
for x in myresult: #show id,name query in database
128+
print("What you want to delete?")
129+
print(x)
130+
131+
i = input("Enter id:") #enter query id
132+
c = input("Confirm deleting?(y/n): ")
133+
134+
if i=='': #detect blank input
135+
print("\033[1;31;40m Error id. \033[1;37;40m")
136+
else:
137+
if c == 'y' or c =='Y':
138+
sql = "DELETE FROM db_password.tb_nap WHERE id = %s" #delete from query id
139+
mycursor.execute(sql, (i,))
140+
mydb.commit() #confirm operation to database
141+
142+
print(mycursor.rowcount, "name and password deleted\n\n") #show number(s) of query that have deleted
143+
else:
144+
print("Cancled...")
145+
func()
146+
147+
elif cmd == 'q' or cmd == 'Q':
148+
print("See you next time\n")
149+
end()
150+
151+
#error
152+
else :
153+
print("\033[1;31;40m Error,Can't define command...plese try again \033[1;37;40m\n")
154+
func()
155+
156+
def end():
157+
os.system('pause')
139158

140-
os.system('pause')
159+
enter()

0 commit comments

Comments
 (0)