durant une épreuve de programmation (non-officielle) je suis tombé sur un exercice me demandant de crypter et de décrypter une image qui dissimulait un code. Le code était dans la valeur bleue d'un pixel tous les 100 pixels. Une fois la valeur bleue décrypté on est sensé obtenir une lettre. Seulement le programme que j'ai fait ne fonctionne pas du tout est revoie des choses qui n'ont aucun sens comme des caractères aléatoires. Le message que j'ai utilisé était le message suivant "Bien joué #". Je ne sais pas si le problème vient de mon encrypteur ou de mon décrytpeur, merci de m'aider.
Cordialement.
encrypteur
#J'ai surement passé beaucoup trop de temps sur ce programme mais ce n'est pas grave !
from PIL import Image
ms1 = "Bien joué #"
im1 = Image.open("Papillon.jpg")
largeur_image, hauteur_image = im1.size
p = 0
long = len(ms1)
val = -1
im2 = Image.new("RGB",(largeur_image, hauteur_image))
for y in range (hauteur_image):
for x in range(largeur_image):
p = p + 1
r,v,b = im1.getpixel((x,y))
count = p%100
if count == 0 and val < long-1 :
print("Hey")
val = val +1
pos = ms1[val]
ASCII= ord(pos)
im2.putpixel((x,y),(r,v,ASCII))
else:
r,v,b = im1.getpixel((x,y))
im2.putpixel((x,y),(r,v,b))
im2.save("Papillon_code.jpg")
im2.show()
Décrypteur
from PIL import Image
im1 = Image.open("Papillon_code.jpg")
pixel = 0
pass_during_test = 0
mes_code = False
largeur_image, hauteur_image = im1.size
im2 = Image.new("RGB",(largeur_image, hauteur_image))
for y in range (hauteur_image):
for x in range(largeur_image):
pixel = pixel + 1
count = pixel % 100
r,v,b = im1.getpixel((x,y))
if mes_code == False :
if count == 0 :
mes2 = chr(b)
pass_during_test = pass_during_test + 1
print(mes2)
if mes2 == "#":
print("Procédure terminée")
mes_code = True
Image encodée :
Message cryptés par image
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.