Outils pour utilisateurs

Outils du site


php:vizhash_gd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
php:vizhash_gd [2011/05/31 12:20] – [Examples] sebsauvagephp:vizhash_gd [2019/07/25 15:22] (Version actuelle) – [Other visual hashes:] sebsauvage
Ligne 1: Ligne 1:
-FIXME: This page is under construction. Watch your steps ! 
- 
 ====== VizHash GD - a visual hash ====== ====== VizHash GD - a visual hash ======
  
Ligne 13: Ligne 11:
   * The image is unique to the input string (it's a fingerprint)   * The image is unique to the input string (it's a fingerprint)
   * A single bit of difference in the input string produces a totally different image.   * A single bit of difference in the input string produces a totally different image.
-  * It's not possible to deduce the input string from the image.+  * It's not possible to deduce the input string from the image (except by bruteforcing).
  
 ===== What is VizHash GD ? ===== ===== What is VizHash GD ? =====
  
-VisHash GD is an implementation of a visual hash in php. It is free software, under the libpng licence.+VisHash GD is an implementation of a visual hash in php. It is free software, under the [[http://www.opensource.org/licenses/zlib-license.php|zlib/libpng OSI licence]].
  
 Features: Features:
Ligne 23: Ligne 21:
   * Visual hashes keep their visual features even if scaled (see examples below)   * Visual hashes keep their visual features even if scaled (see examples below)
   * Uses only php and basic GD (which are available almost everywhere). Does not use imagefilter GD functions (which are //not// available everywhere).   * Uses only php and basic GD (which are available almost everywhere). Does not use imagefilter GD functions (which are //not// available everywhere).
-  * VizHash GD is //not// beautiful (no fractals, wavelets or high-end filters). It's designed to be fast, light on CPU and to produce images which are easy to differenciate.+  * Runs under php4 and php5. 
 +  * VizHash GD is //not// beautiful (no fractals, wavelets or high-end filters). It's designed to be fast, light on CPU and to produce images which are easy to differentiate.
  
 ===== Examples ===== ===== Examples =====
-The vizhash of the string "hi!" in different sized+The vizhash of the string "hi" in different sizes
-  16x16: <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=16&height=16&t=hi!"></HTML> +16x16:<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=16&height=16&t=hi"></HTML> | 80x80:<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=hi"></HTML>  128x128:<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=128&height=128&t=hi"></HTML> | 256x256:<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=256&height=256&t=hi"></HTML> | 
-  * 32x32: <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=32&height=32&t=hi!"></HTML> +| 32x32:<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=32&height=32&t=hi"></HTML> Stretched vertically:\\ 32x128:<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=32&height=128&t=hi"></HTML> | Stretched horizontally:\\ 128x32:<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=128&height=32&t=hi"></HTML> |  :::  |
-  128x128: <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=128&height=128&t=hi!"></HTML> +
-  * Stretched horizontally128x32: <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=128&height=32&t=hi!"></HTML> +
-  * Stretched vertically: 32x128: <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=32&height=128&t=hi!"></HTML>+
  
 A few domain names hashed: A few domain names hashed:
  
-  * facebook.com <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=facebook.com"></HTML> +|  facebook.com<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=facebook.com"></HTML>  |  mozilla.com<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=mozilla.com"></HTML>  |  twitter.com<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=twitter.com"></HTML>  |  commentcamarche.net<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=commentcamarche.net"></HTML>  | 
-  * twitter.com : <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=twitter.com"></HTML> +|   google.fr<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=google.fr"></HTML>  |  siteduzero.com<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=siteduzero.com"></HTML>   slashdot.org<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=slashdot.org"></HTML>  |  sourceforge.net<HTML><br><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=sourceforge.net"></HTML>  |
-  * google.com : <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=google.com"></HTML> +
-  siteduzero.com <HTML><img src="http://sebsauvage.net/vizhash_gd.php?width=80&height=80&t=siteduzero.com"></HTML> +
-===== Source =====+
  
-Current version is 0.0.3 beta+(Yes, I know it's ugly. But beauty is not the point.) 
-It's only test code and probably could be improved, but it works.+===== Licence =====
  
-SourceFIXME +Vizhash_GD is under the [[http://www.opensource.org/licenses/zlib-license.php|zlib/libpng OSI licence]].
-Online test page: FIXME+
  
 +===== Source =====
 +
 +Current version is 0.0.4 beta.
 +It's only play-test code and could probably be improved, but it works.
 +
 +  * Source: [[VizHash GD source]]
  
 +An online service is available for you to test: [[http://sebsauvage.net/vizhash_gd.php|http://sebsauvage.net/vizhash_gd.php]] - **PLEASE DO NOT HAMMER THIS SERVICE** or I will have to take it down. Do not hotlink images to this URL: Install the script on your own server. Thank you.
 ===== Applications ===== ===== Applications =====
  
-Many application can be imagined:+Many applications can be envisioned:
  
-  * **Avatar**: VizHash can be used as an avatar on forum or blog comments. Simply hash the IP (or email) address and feed into VizHash GD and BAM ! You have a unique icon for each user, specific to its IP/email address.+  * **Avatars**: VizHash can be used as an avatar in forums or blog comments. Simply hash the IP (or email) address and feed into VizHash GD and BAM ! You have a unique icon for each visitor, specific to its IP or email address. Example: It is currently is in use in discussions on this wiki (3 lines modified in DokuWiki), and also in [[php:zerobin|ZeroBin]] discussions.
  
   * **File integrity**: Instead of the cumbersome manual comparison of MD5 after downloading a file, you could check the integrity of the file in an eye-blink (A file manager extension could be developed for this purpose). If the visual hash matches, the file is valid. See [[http://sebsauvage.net/rhaa/index.php?2010/05/27/20/38/53-tabjacking-est-ce-vraiment-un-probleme|this article]] (in French) for a mock screenshot.   * **File integrity**: Instead of the cumbersome manual comparison of MD5 after downloading a file, you could check the integrity of the file in an eye-blink (A file manager extension could be developed for this purpose). If the visual hash matches, the file is valid. See [[http://sebsauvage.net/rhaa/index.php?2010/05/27/20/38/53-tabjacking-est-ce-vraiment-un-probleme|this article]] (in French) for a mock screenshot.
Ligne 65: Ligne 64:
 ===== Links ===== ===== Links =====
  
-Other visual hashes:+==== Java implementation ==== 
 + 
 +Edouard de Labareyre has developed a Java version of Vizhash GD which is visually compatible with the php version (This means that the generated images are the same between the Java and php version for the same input). 
 + 
 +  * [[http://codingteam.net/project/inouire_mini_projects/browse/VizHash4j/src/src/net/inouire/vizhash4j/VizHashPanel.java|Source code]] 
 +  * [[http://codingteam.net/project/inouire_mini_projects/download/file/vizhash4j_0.1.jar|JAR file]] 
 + 
 +==== Javascript implementation ==== 
 + 
 +Sam & Max has implemented a visual hash in javascript which uses HTML5 canvas. It is visually //close// (but not identical) to the php and java version. VizHash.js is under the zlib/libpng licence. 
 + 
 +  * [[http://sametmax.com/vizhash-js-notre-implementation-libre-de-hash-visuel-utilisant-html5-canvas/|Article]] (in french) 
 +  * [[http://jsfiddle.net/tXKj8/4/light/|Password hash example]] (on jsFiddle) 
 +  * [[https://github.com/sametmax/VizHash.js/zipball/master|Download the lib]] (zip file) 
 + 
 +==== Other visual hashes: ==== 
  
 +  * https://github.com/luxcem/vizhash
   * [[http://en.wikipedia.org/wiki/Identicon|Identicon]]   * [[http://en.wikipedia.org/wiki/Identicon|Identicon]]
   * [[http://digitalconsumption.com/forum/Visiglyphs-for-IP-visualisation|Visiglyphs]]   * [[http://digitalconsumption.com/forum/Visiglyphs-for-IP-visualisation|Visiglyphs]]
   * [[http://www.pinkandaint.com/oldhome/comp/visprint/|Visprint]]   * [[http://www.pinkandaint.com/oldhome/comp/visprint/|Visprint]]
-  * [[http://broadcast.oreilly.com/2008/11/ssh-visual-fingerprints.html|OpenSSH]] also has it'visual hash implementation, in ascii art.+  * [[http://broadcast.oreilly.com/2008/11/ssh-visual-fingerprints.html|OpenSSH]] also has its visual hash implementation, in ascii art.
   * [[http://www.chrisharrison.net/projects/visualhash/|VisualHash]] by Chris Harrison.   * [[http://www.chrisharrison.net/projects/visualhash/|VisualHash]] by Chris Harrison.
 +  * [[http://www.splitbrain.org/projects/monsterid|MonsterID]] creates a unique avatar built from different monster pieces picked according to IP or email adress of visitors.
 +  * [[https://robohash.org/|RoboHash]], with three different facestyles and optional background. [[https://github.com/e1ven/Robohash|Opensource]]. 
 +  * [[http://catavatar.ml/|catavatar.ml]]
   * I lost a few links - doh.   * I lost a few links - doh.
  
-~~DISCUSSION~~+~~DISCUSSION:closed~~
php/vizhash_gd.1306844451.txt.gz · Dernière modification : 2014/07/12 11:26 (modification externe)