Untitled
unknown
plain_text
a year ago
688 B
14
Indexable
def encryptpwd(plain_password):
# 📌 Générer un sel unique (16 octets)
SALT = os.urandom(16)
# 📌 Dériver la clé avec PBKDF2-HMAC-SHA512 (correspond à ce que fait pgAdmin)
KEY = hashlib.pbkdf2_hmac('sha512', MASTER_KEY, SALT, 25000, dklen=32)
# 📌 Chiffrement AES-GCM
cipher = AES.new(KEY, AES.MODE_GCM)
nonce = cipher.nonce # Nécessaire pour déchiffrement
ciphertext, tag = cipher.encrypt_and_digest(plain_password.encode())
# 📌 Respecter la structure de stockage de pgAdmin : Base64(SALT + NONCE + TAG + CIPHERTEXT)
encrypted_password = base64.b64encode(SALT + nonce + tag + ciphertext).decode()
return encrypted_passwordEditor is loading...
Leave a Comment