Skip to content

Visuelle Kryptographie Mystery Cache

Hidden : 7/26/2016
Difficulty:
3 out of 5
Terrain:
1.5 out of 5

Size: Size:   micro (micro)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:


Die oben angegebenen Koordinaten haben natürlich nichts mit dem Finalversteck zu tun.
Vor kurzem war mir mal wieder danach, zu programmieren. Python ist meine Lieblings-Programmiersprache. Aber zum Lösen dieses Mysteries sind keine Programmierkenntnisse nötig.
Was das Programm macht? Ganz kurz: es liest ein Bild mit dem Namen "original.png" ein, welches die Koordinaten enthält (als Bild). Die Informationen, werden auf zwei Teilbilder crypt1 und crypt2 so verteilt, dass jedes Teilbild alleine keine Informationen über das Originalbild preisgibt.
Das entstandene Python-Programm sah schließlich so aus:
from PIL import Image
from random import randint

original=Image.open("original.png")
original_pix=original.load()

x_size=original.size[0]*2
y_size=original.size[1]*2

crypt1=Image.new("RGBA",(x_size,y_size))
crypt2=Image.new("RGBA",(x_size,y_size))
crypt1_pix=crypt1.load()
crypt2_pix=crypt2.load()

for x in range(x_size/2):
        for y in range(y_size/2):
                if randint(0,1)==0:
                        crypt1_pix[x*2,y*2]=(0,0,0,255)
                        crypt1_pix[x*2+1,y*2+1]=(0,0,0,255)
                        if original_pix[x,y]==(0,0,0,255):
                                crypt2_pix[x*2+1,y*2]=(0,0,0,255)
                                crypt2_pix[x*2,y*2+1]=(0,0,0,255)
                        else:
                                crypt2_pix[x*2,y*2]=(0,0,0,255)
                                crypt2_pix[x*2+1,y*2+1]=(0,0,0,255)
                else:
                        crypt1_pix[x*2+1,y*2]=(0,0,0,255)
                        crypt1_pix[x*2,y*2+1]=(0,0,0,255)
                        if original_pix[x,y]==(0,0,0,255):
                                crypt2_pix[x*2,y*2]=(0,0,0,255)
                                crypt2_pix[x*2+1,y*2+1]=(0,0,0,255)
                        else:
                                crypt2_pix[x*2+1,y*2]=(0,0,0,255)
                                crypt2_pix[x*2,y*2+1]=(0,0,0,255)

crypt1.save("c1.png")
crypt2.save("c2.png")
Der sich oft wiederholende Ausdruck (0,0,0,255) steht dabei für das Setzen eines schwarzen Pixels.
Das Ergebnis sind die beiden folgenden Teilbilder:
crypt1 crypt2
Und zum Schluss noch einen Literaturtipp:
Andreas Klein: Visuelle Kryptographie, Springer-Verlag, 2007.
... und nun viel Spaß beim Suchen und Finden des Caches.

Additional Hints (No hints available.)