Quel est l'état des navigateurs Web d'aujourd'hui (Chrome, IE, Safari & Firefox) et leur capacité à créer des uuids cryptographiquement forts? Dans la recherche de cette question, j'ai été incapable de trouver quelque chose de définitif. J'ai rencontré des informations sur Stackoverflow et ailleurs qui indiquent des problèmes avec Math.Random, mais j'aimerais savoir quel est l'état actuel de tout cela. P>
comme icktoofay strong> pointué, crypto.getrandomvalues code> est le moyen de le faire. Malheureusement, le soutien entre les navigateurs est limité. Y a-t-il un moyen éprouvé de contourner cela? Y a-t-il des bibliothèques JavaScript qui abordent ce problème? P>
3 Réponses :
Dans les navigateurs qui l'ont, vous pouvez utiliser < Code> crypto.getrandomvalues code> pour obtenir des valeurs de pseudo-carie cryptographiquement. Par exemple: Vous pouvez ensuite manipuler ces octets dans une UUID valide. P> p>
Merci pour le lien. Avec le soutien de Crypto.GetRandomvalues Limited, existe-t-il d'autres moyens d'obtenir une forteté plus forte? Je vais mettre à jour la question.
@ user1843640: crypto.getrandomvalues code> est la meilleure option que vous avez obtenue, mais si cela n'est pas disponible, vous voudrez peut-être regarder Comment SJCL fait-il .
Réponse courte, non! Longue réponse, http://www.matasano.com/articles/javascript-cryptography/ p>
Faire confiance à moi, j'ai étudié cette question pendant un moment. Crypto est expérimental et donc pour la majorité des navigateurs, c'est un non. Le nœud pourrait cependant être mieux que cela passe directement dans le système d'exploitation. Vous aurez besoin de rechercher cela! P>
Bien que cela ne réponde pas directement à la question initiale, cela pourrait aider une personne à la recherche d'une bibliothèque pour aider à la création UUID. Pour mes besoins actuels, j'ai décidé d'utiliser le Bibliothèque Node-UUID . Dans la liste des caractéristiques: P>
En regardant la source, il semble y accomplir en utilisant Crypto.GetRandomValues qui est suggérée @Iktoofay. P>
Qu'entendez-vous par «Uuid cryptographiquement fort»? Les uuids ne sont pas censés être cryptographiquement quoi que ce soit - ils sont censés être uniques.
Je parle de la qualité du générateur de nombres aléatoires. A-t-il suffisamment d'entropie, est-ce la classe crypto.
Dans le contexte des Uuids, il n'y a aucune exigence de hasard, juste unicité. Les deux ne sont pas synonymes.