Во-первых, base 64
не зашифрован, i t закодировано. Существует большая разница. Во-вторых, используйте хеширование.
Проверьте модуль hashlib. Существуют различные безопасные алгоритмы хеширования, которые вы можете использовать. SHA1, SHA224, SHA256, SHA384 и SHA512, а также алгоритм RS5 MD5.
Хотя одиночное удаление хэширования небезопасно из-за нападений Rainbow Table. Используйте соление вместе с хешированием, чтобы сделать пароли более безопасными. Короткие реализации этого взяты из here:
import uuid
import hashlib
def hash_password(password):
# uuid is used to generate a random number
salt = uuid.uuid4().hex
return hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ':' + salt
def check_password(hashed_password, user_password):
password, salt = hashed_password.split(':')
return password == hashlib.sha256(salt.encode() + user_password.encode()).hexdigest()
new_pass = raw_input('Please enter a password: ')
hashed_password = hash_password(new_pass)
print('The string to store in the db is: ' + hashed_password)
old_pass = raw_input('Now please enter the password again to check: ')
if check_password(hashed_password, old_pass):
print('You entered the right password')
else:
print('I am sorry but the password does not match')
Кроме того, вы можете использовать WERKZEUG, чтобы помочь вам в этом. This - хороший фрагмент, который вы можете изменить и реализовать.
«... или зашифровано (' base64') «Кодирование не шифруется. – DeepSpace
Во-первых, 'base64' не зашифрован, он закодирован. Каждый основной язык программирования будет легко декодировать его, чтобы вы могли распечатать его в виде простого текста. Во-вторых, решение простое, просто не записывайте пароли. Нет причин для этого и делает вас крайне уязвимыми. – IanAuld
@lanAuld Мне нужно зарегистрировать команду как this -cmdparam SQLSVCPASSWORD = XXXXX, AGTSVCPASSWORD = XXXXX, SAPWD = XXXXXX, ConfigurationFile = C: \ abc \ xyz.ini – user1312155