import getpass
import pickle
import hashlib
from os import path
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
## First we check if the database exists.
if path.isfile['database.db']:
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
## If it doesn't, we will create one.
else:
## First we create the desired variable.
db = {'torxed' : Encryption['wham'], 'someoneelse' : Encryption['pass']}
## Then we open a filehandle to it.
with open['database.db', 'wb'] as fh:
## And then we dump the variable into the filehandle.
## This will keep the variable intact between sessions,
## meaning the next time you start your script, the variable will look the same.
pickle.dump[db, fh]
## Then we ask the user for his/hers credentials.
user = raw_input['Username: ']
_pass = getpass.getpass['Password: ']
## If the user exists in the "db" and the decoded password
## Matches the logged in user, it's a-ok :]
if user in db and db[user] == Encryption[_pass]:
print['You logged in']
Thêm nhiều người dùng
import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
Một cách khác là sử dụng sys.argv
để lấy tên người dùng và mật khẩu từ dòng lệnh khi người dùng bổ sung, trong trường hợp đó:
import pickle, hashlib, sys
if len[sys.argv] < 3:
raise ValueError['Need two parameters, username and password']
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db[sys.argv[1]] = Encryption[sys.argv[2]]
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
Tôi nên mở rộng câu trả lời này và giải thích rằng bạn cũng nên muối mật khẩu, và không chỉ lưu trữ chúng bằng băm SHA.
Cũng lưu ý rằng mật khẩu được "không an toàn" nghiêm ngặt khi được lưu trữ trong bộ nhớ, vì không có chứng khoán [thêm] trong Python khi viết điều này. Nhưng đối với mục đích cơ bản, câu trả lời này vẫn được áp dụng.
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luậnpyminizip module from python.
Installation:
ZIP là một định dạng tệp lưu trữ hỗ trợ nén dữ liệu không mất. Bằng cách nén không mất, chúng tôi có nghĩa là thuật toán nén cho phép dữ liệu gốc được xây dựng lại hoàn hảo từ dữ liệu được nén. Vì vậy, một tệp zip là một tệp duy nhất chứa một hoặc nhiều tệp nén, cung cấp một cách lý tưởng để tạo các tệp lớn nhỏ hơn và giữ các tệp liên quan lại với nhau.The pyminizip module can be installed using the below command:
pip install pyminizip
Trong bài viết này, chúng tôi sẽ tìm hiểu cách tạo zip được bảo vệ bằng mật khẩu của một tệp bằng Python. Đối với điều này, chúng tôi đang sử dụng mô -đun pyminizip từ Python.compress[] method from pyminizip. So, we discuss first its syntax and arguments.
Syntax:
& NBSP; Mô -đun PymInizip có thể được cài đặt bằng lệnh bên dưới:
Arguments:
- Đường dẫn tệp SRC [Chuỗi]
- Đường dẫn tiền tố SRC [chuỗi] hoặc không
- Đường dẫn tệp DST [chuỗi]
- Mật khẩu [chuỗi] hoặc không có [để tạo zip không có thông tin]
- Compress_Level [int] trong khoảng từ 1 đến 9, 1 [nhanh hơn] 9 [nén nhiều hơn] hoặc 0 [mặc định] & nbsp;
Giá trị trả lại: luôn trả về khôngAlways returns None
Implementation:
Tệp đầu vào:
Program:
Python3
import
pyminizip
inpt
=
"./Text.txt"
import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
0=
import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
2import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
3=
import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
5import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
6=
import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
8import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
9=
import pickle, hashlib, sys
if len[sys.argv] < 3:
raise ValueError['Need two parameters, username and password']
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db[sys.argv[1]] = Encryption[sys.argv[2]]
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
1import pickle, hashlib, sys
if len[sys.argv] < 3:
raise ValueError['Need two parameters, username and password']
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db[sys.argv[1]] = Encryption[sys.argv[2]]
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
2import pickle, hashlib
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db['new_user'] = Encryption['password']
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
2import pickle, hashlib, sys
if len[sys.argv] < 3:
raise ValueError['Need two parameters, username and password']
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db[sys.argv[1]] = Encryption[sys.argv[2]]
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
4import pickle, hashlib, sys
if len[sys.argv] < 3:
raise ValueError['Need two parameters, username and password']
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db[sys.argv[1]] = Encryption[sys.argv[2]]
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
5import pickle, hashlib, sys
if len[sys.argv] < 3:
raise ValueError['Need two parameters, username and password']
def Encryption[data]:
return hashlib.sha512[data].hexdigest[]
with open['database.db', 'rb'] as fh:
db = pickle.load[fh]
db[sys.argv[1]] = Encryption[sys.argv[2]]
with open['database.db', 'wb'] as fh:
pickle.dump[db, fh]
6Output: