Bonjour,

Avertissement: je débute en python

En fait, j'aimerais faire un programme qui lit un fichier ini et crypte et décrypte les données cryptée qui sont dans le fichier ini.
Le fichier ini est lus par un programme java qui utilise une passphase de 16 caractères et une encryption de type "AES"

Ci dessous, mon code en l'état, je sais pas très bien où récupéré la valeur cryptée
Et je ne sais pas si le configparser va bien garder les autres données présente dans le fichier ini

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
Note : the passphrase is not the real passphrase

Avez-vous quelques conseils et explications ?

merci