1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
import configparser
from Crypto.Cipher import AES
filename = "<fichier ini>"
passphrase = "12344678911234*1"
# Writing Data
config = configparser.ConfigParser()
config.read(filename)
# Reading Data
keys = ["server", "port", "user", "password"]
for key in keys:
try:
value = config.get("database", key)
if(key == "server")
currentHost = value;
if(key == "port")
currentPort = value;
if(key == "user")
cipher = AES.new(passphrase, AES.MODE_EAX, nonce)
currentUser = cipher.decrypt_and_verify(value, tag)
if(key == "password")
cipher = AES.new(passphrase, AES.MODE_EAX, nonce)
currentPassword = cipher.decrypt_and_verify(value, tag)
#ASK User for modify data (ENTER keep current value)
sBuffer = input("Hostname ("+currentHost+"): ")
if(sBuffer == "")
databaseHost = currentHost
else
databaseHost = sBuffer
sBuffer = input("Port ("+currentPort+"): ")
if(sBuffer == "")
databasePort = currentPort
else
databasePort = sBuffer
sBuffer = input("Utilisateur ("+currentUser+"): ")
if(sBuffer == "")
databaseUser = currentUser
else
databaseUser = sBuffer
sBuffer = input("Mot de passe : ")
if(sBuffer == "")
databasePassword = currentPassword
else
databasePassword = sBuffer
try:
config.set("database", "server", databaseHost)
config.set("database", "port", databasePort)
cipher = AES.new(passphrase, AES.MODE_EAX)
ciphertext, tag = cipher.encrypt_and_digest(databaseUser)
nonce = cipher.nonce
ciphertext, tag = cipher.encrypt_and_digest(databasePassword)
nonce = cipher.nonce
cryptedUser =
cryptedPassword =
config.set("database", "user", cryptedUser)
config.set("database", "password", cryptedPassword)
with open(filename, "w") as config_file:
config.write(config_file) |
Partager