Bonjour à tous,

J'utilise ce bout de code pour encoder grossièrement des fichiers:

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
 
import sys
import StringIO
import operator
 
filename = sys.argv[1]
pw = "MONSUPERMOTDEPASS"
 
f = open(filename, "rb")
str1 = f.read()
f.close()
 
sr = StringIO.StringIO(str1)
sw = StringIO.StringIO(str1)
sr.seek(0)
n = 0
 
for k in range(len(str1)):
    print k
    # attention origin if n >= len(pw) -1:
    if n >= len(pw):
        n = 0
    p = ord(pw[n])
    n += 1
 
    c = sr.read(1)
    b = ord(c)
    # xor byte with password byte
    t = operator.xor(b, p)
    z = chr(t)
    # advance position to k in stream sw then write one character
    sw.seek(k)
    sw.write(z)
 
sw.seek(0)
 
f = open(filename[:-4]+".flc","wb")
f.write(sw.read())
f.close()
 
sr.close()
sw.close()
Pour des petits fichiers ca va, les temps d'executions sont acceptables mais pour des fichiers de 2Mo, c'est vraiment catastrophique...

Merci de votre aide...