-1
私はPythonのコード下記のように持っています正しく、私が必要とするのは、すべてのパスワードがXXXX
または暗号化されたものとして印刷されるべきです。(base64)
印刷パスワードなど
私はPythonのコード下記のように持っています正しく、私が必要とするのは、すべてのパスワードがXXXX
または暗号化されたものとして印刷されるべきです。(base64)
印刷パスワードなど
最初に、base 64
は暗号化されていません。 tはエンコードされます。大きな違いがあります。次に、ハッシングを使用します。
hashlibモジュールをチェックしてください。あなたが使用できるさまざまな安全なハッシュアルゴリズムがあります。 SHA1、SHA224、SHA256、SHA384、およびSHA512、RSAの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このようなコマンドをログに記録する必要があります。-cmdparam SQLSVCPASSWORD = XXXXX、AGTSVCPASSWORD = XXXXX、SAPWD = XXXXXX、ConfigurationFile = C:\ abc \ xyz.ini – user1312155