Zunächst ist base 64
nicht verschlüsselt, ich t ist codiert. Es gibt einen großen Unterschied. Zweitens, benutze Hashing.
Überprüfen Sie das hashlib Modul. Es gibt verschiedene sichere Hash-Algorithmen, die Sie verwenden können. SHA1, SHA224, SHA256, SHA384 und SHA512 sowie der MD5-Algorithmus von RSA.
Obwohl allein tun Hashing ist nicht sicher wegen Rainbow Table Angriffe. Verwenden Sie Salting zusammen mit Hashing, um die Passwörter sicherer zu machen. Kurze Einführungs davon aus here genommen:
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')
Auch Sie verwenden werkzeug kann Ihnen dabei zu helfen. This ist ein gutes Snippet, das Sie ändern und implementieren können.
"... oder verschlüsselt (' base64') "Die Codierung verschlüsselt nicht. – DeepSpace
Zunächst ist 'base64' nicht verschlüsselt, es ist verschlüsselt. Jede große Programmiersprache wird es leicht entschlüsseln können, so dass Sie es auch im Klartext ausdrucken können. Zweitens ist die Lösung einfach, einfach Passwörter nicht protokollieren. Es gibt keinen Grund dazu und macht Sie extrem verletzlich. – IanAuld
@lanAuld ich muss den Befehl wie folgt -cmdparam schreiben SQLSVCPASSWORD = XXXXX, AGTSVCPASSWORD = XXXXX, SAPWD = XXXXXX, Konfigurationsdatei = C: \ abc \ xyz.ini – user1312155