Double Possible:
Générer un Hachage de chaîne de caractères en Javascript/jQueryQuelqu'un peut-il suggérer une simple (c'est à dire des dizaines de lignes de code, pas des centaines de lignes) en fonction de hachage écrit dans (navigateur compatible avec JavaScript? Idéalement, je voudrais quelque chose qui, lorsqu'il est passé d'une chaîne de caractères en entrée, produit quelque chose de semblable à 32 caractères hexadécimaux de chaîne de caractères qui est le résultat typique de MD5, SHA1, etc. Il n'a pas à être cryptographiquement sûr, juste raisonnablement résistant aux collisions. (Mon premier cas d'utilisation d'Url, mais je vais probablement vous souhaitez l'utiliser sur d'autres chaînes dans l'avenir.)
Réponses
Trop de publicités?Je n'ai pas vérifier moi-même, mais vous pouvez toujours regarder JavaScript mise en œuvre de Java de la Chaîne.hashCode() de la méthode. Semble raisonnablement court.
Il existe de nombreuses réalisations de fonctions de hachage écrit en JS. Par exemple:
- SHA-1: http://www.webtoolkit.info/javascript-sha1.html
- SHA-256: http://www.webtoolkit.info/javascript-sha256.html
- MD5: http://www.webtoolkit.info/javascript-md5.html
Si vous n'avez pas besoin de sécurité, vous pouvez également utiliser base64 qui n'est pas fonction de hachage, n'a pas de sortie fixe et peut simplement être décodé par l'utilisateur, mais c'est plus léger et peut être utilisé pour masquer les valeurs: http://www.webtoolkit.info/javascript-base64.html
Découvrez ces implémentations
- http://www.movable-type.co.uk/scripts/sha1.html (algorithme SHA-1)
- http://pajhome.org.uk/crypt/md5/ (pour les implémentations de l'algorithme SHA-1, MD5, HMAC et autres)
Cet article explique simples fonctions de hachage dans le détail et fournit un exemple de code (en C) qui n'est pas très compliqué. Ressemble à Bob Jenkins fonction de hachage peut être appropriée pour vos besoins (ce Dr Dobbs l'article a plus de détails et une enquête sur les autres fonctions de hachage, à la fois de ce qui pourrait être utile).
Découvrez cette MD5 mise en œuvre pour le JavaScript. Son sous Licence BSD et vraiment facile à utiliser. Exemple:
md5 = hex_md5("message to digest")