php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.09.2007, 23:17  
Benutzer
 
Registriert seit: 22.02.2007
Beiträge: 51
Adminator
Adminator eine Nachricht über ICQ schicken
Standard Captcha

Hallo,
ich hab folgende Seite gefunden:
VisuelleKryptographie
und mir gedacht, dass das ne tolle Idee für ein Captcha ist.
Was haltet Ihr davon?
Man müsste einfach den darzustellenden Text wie auf der Seite beschrieben in zwei Grafiken teilen, eine Farbe als Transparent bestimmen und dann mit DIV's übereinanderlegen.
Ist zwar auch lösbar, aber schon mit deutlich mehr aufwand verbunden, da ja beide bilder pixel für pixel auf übereinstimmungen überprüft werden müssen.
Adminator ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.09.2007, 23:40  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Das ist bestimmt ne interessante Idee. Aber dann müsstest du den Text in eben zwei Grafiken aufsplitten! Das dürfte nicht so leicht sein denk ich mal.
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline   Mit Zitat antworten
Alt 09.09.2007, 20:11  
Benutzer
 
Registriert seit: 22.02.2007
Beiträge: 51
Adminator
Adminator eine Nachricht über ICQ schicken
Standard

So, hab da mal schnell ein Beispiel gecodet.
Captcha Algorithmus
is nur ein funpic webspace, auf dems zur zeit läuft.
Sorry wegen der Werbung, hab momentan keinen vernünftigen webspace.
Die Bilder werden dynamisch bei jedem Seitenaufruf generiert (GD-lib).
Wenn Ihr den Text ändern wollt, einfach per GET einen anderen Text übermitteln.
Adminator ist offline   Mit Zitat antworten
Alt 09.09.2007, 21:31  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Geil geil geil! Ich wollte mich eben auch scho hinsetzen und einen machen. Habs dann aber doch gelassen.

Kannst du mir den PHP Code zeigen? Würd mich mal interessieren wie dus gelöst hast.
Jetzt wird allerdings auf der Seite ein Bild angezeigt welches von Haus aus den korrekten Text zeigt! Aber die beiden Bilder im Quellcode hab ich mir mal runtergeladen und übereinander gelegt. Funktioniert wirklich! Sehr interessante Sache!

Die Frage ist nur, ob ein Bot nicht einfach ein Bild von beiden Bildern macht und dann darüber checkt was drauf steht :/ Dann wäre es voll fürn Arsch es aus zwei Bildern zu machen.
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline   Mit Zitat antworten
Alt 09.09.2007, 21:46  
Benutzer
 
Registriert seit: 22.02.2007
Beiträge: 51
Adminator
Adminator eine Nachricht über ICQ schicken
Standard

PHP-Code:
<?php
$starttime 
microtime();
$string $_GET['text'];
$im     imagecreatefrompng("./background.png");
$white imagecolorallocate($im255255255);
$px     = (imagesx($im) - 9.5 strlen($string)) / 2;
$i imagestring($im33$px19$string$white);

$size getimagesize("./background.png");
$x 0;
$y 0;

$im2 imagecreate($size[0]*2$size[1]*2);
$im3 imagecreate($size[0]*2$size[1]*2);

$background_color ImageColorAllocate ($im2255255255);
$background_color ImageColorAllocate ($im3255255255);

if(
$_GET['on'] == 1)
 {
  while(
$y != $size[1])
   {
    while(
$x != $size[0])
     {
//    echo "
X".$x." Y".$y;
      $rand = rand(0, 1);
      if((imagecolorat($im, $x, $y) == 0) && ($rand == 0))
       {
        imagesetpixel($im2, $x*2, $y*2, 0);
        imagesetpixel($im2, $x*2+1, $y*2, 16777215);
        imagesetpixel($im2, $x*2, $y*2+1, 16777215);
        imagesetpixel($im2, $x*2+1, $y*2+1, 0);

        imagesetpixel($im3, $x*2, $y*2, 16777215);
        imagesetpixel($im3, $x*2+1, $y*2, 0);
        imagesetpixel($im3, $x*2, $y*2+1, 0);
        imagesetpixel($im3, $x*2+1, $y*2+1, 16777215);
       }
      elseif((imagecolorat($im, $x, $y) == 0) && ($rand == 1))
       {
        imagesetpixel($im3, $x*2, $y*2, 0);
        imagesetpixel($im3, $x*2+1, $y*2, 16777215);
        imagesetpixel($im3, $x*2, $y*2+1, 16777215);
        imagesetpixel($im3, $x*2+1, $y*2+1, 0);

        imagesetpixel($im2, $x*2, $y*2, 16777215);
        imagesetpixel($im2, $x*2+1, $y*2, 0);
        imagesetpixel($im2, $x*2, $y*2+1, 0);
        imagesetpixel($im2, $x*2+1, $y*2+1, 16777215);
       }
      elseif((imagecolorat($im, $x, $y) == 16777215) && ($rand == 0))
       {
        imagesetpixel($im2, $x*2, $y*2, 0);
        imagesetpixel($im2, $x*2+1, $y*2, 16777215);
        imagesetpixel($im2, $x*2, $y*2+1, 16777215);
        imagesetpixel($im2, $x*2+1, $y*2+1, 0);

        imagesetpixel($im3, $x*2, $y*2, 0);
        imagesetpixel($im3, $x*2+1, $y*2, 16777215);
        imagesetpixel($im3, $x*2, $y*2+1, 16777215);
        imagesetpixel($im3, $x*2+1, $y*2+1, 0);
       }
      elseif((imagecolorat($im, $x, $y) == 16777215) && ($rand == 1))
       {
        imagesetpixel($im2, $x*2, $y*2, 16777215);
        imagesetpixel($im2, $x*2+1, $y*2, 0);
        imagesetpixel($im2, $x*2, $y*2+1, 0);
        imagesetpixel($im2, $x*2+1, $y*2+1, 16777215);

        imagesetpixel($im3, $x*2, $y*2, 16777215);
        imagesetpixel($im3, $x*2+1, $y*2, 0);
        imagesetpixel($im3, $x*2, $y*2+1, 0);
        imagesetpixel($im3, $x*2+1, $y*2+1, 16777215);
       }
      ++$x;
     }
    if($x == $size[0])
     {
      $x = 0;
     }
    ++$y;
   }
$endtime = microtime();
echo 'Starttime: '.$starttime.' Endtime: '.$endtime;
 }

imagecolortransparent($im3, 0);
imagecolortransparent($im2, 0);

$randomn = rand(1, 100000);
$filename1 = "
png".$randomn."pic0.png";
$filename2 = "
png".$randomn."pic1.png";
$filename3 = "
png".$randomn."pic2.png";
imagepng($im, $filename1);
imagepng($im2, $filename2);
imagepng($im3, $filename3);
?>
is nix bsonderes, nur mal schnell als Beispiel gecodet.
Das dass Originalbild angezeigt wird ist gewollt, dass man das Ursprungs-PNG sieht, is ja nur zur demonstration.
Naja, wenn er von beiden Bildern ein Bild macht ist das schon wieder mit mehr Aufwand verbunden. Es gäbe auch noch eine ganz einfache Methode diesen Schutz zu knacken, aber ich sag lieber nix ^^.
Man kann diese verschlüsselung auch noch mit anderen kombinieren (z.B. Rechenaufgaben stellen, Querstriche im Bild, verschiedene Fonts, ...) und dann wirds schon schwierig für Bots.
Adminator ist offline   Mit Zitat antworten
Alt 09.09.2007, 22:09  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Das Funktionalität kann doch aber auch einfach wieder umgedreht werden. Wenn ich die Information auf dem Bild verschlüsseln will, kann ich das Bild auch einfacher trennen. Statt in die Tiefe zu gehen, einfach horizontal oder vertical zerteilen. Vielleicht sogar mit Überlappungen, in denen Fehlinformationen gestreut werden. CSS fügt mit Positionsangaben und z-index das Puzzle zusammen.
Zergling-new ist offline   Mit Zitat antworten
Alt 09.09.2007, 23:06  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Auch wieder wahr. Und irgendwie auch bissl einfacher.
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gleichungs Captcha PHP litterauspirna PHP-Fortgeschrittene 17 25.05.2008 21:06
Frage zu spam bots und captcha litterauspirna PHP Tipps 2008 6 20.05.2008 23:56
Probleme beim Einbau von Captcha Dartgott Trash 2 24.04.2008 11:15
Captcha in Website einbauen Dartgott PHP Tipps 2008 9 23.04.2008 15:53
Captcha in bestehendes GB einbauen ZeroQL PHP Tipps 2008 6 08.04.2008 15:32
Captcha Frage und vorstelung meiner seite oerny18 PHP Tipps 2008 10 31.03.2008 20:05
Captcha - Session Problem Toby PHP Tipps 2008 9 11.03.2008 19:38
Captcha? Ja, Nein oder? stefanjann Off-Topic Diskussionen 12 20.02.2008 12:59
mit ajax captcha neu laden und generieren jjackisc PHP-Fortgeschrittene 10 10.08.2007 15:41
Captcha unsicher? PHP Tipps 2007 7 20.03.2007 16:10
[Erledigt] Probleme mit Einbindung Captcha PHP Tipps 2006 0 18.08.2006 19:42
captcha PHP Tipps 2006 8 16.06.2006 13:48
Gästebuch (inkl. Captcha) Script oder Programmierhilfe Zuzy Trash 4 04.05.2006 07:47
Gästebuch mit captcha emerge PHP Tipps 2006 8 01.04.2006 10:06
Captcha Problem / edit: geht PHP Tipps 2005-2 9 28.10.2005 23:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
visuelle kryptographie quellcode, \if(imagecolorat($im,$x,$y)!=16777215)\, imagesetpixel ändert, if(imagecolorat($im,$x,$y)!=16777215) $z=$i;

Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.