﻿﻿{"id":2203,"date":"2026-01-28T10:00:00","date_gmt":"2026-01-28T09:00:00","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/un-generateur-de-mots-de-passe-qui-utilise-des-regex\/"},"modified":"2026-01-28T10:00:00","modified_gmt":"2026-01-28T09:00:00","slug":"un-generateur-de-mots-de-passe-qui-utilise-des-regex","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/un-generateur-de-mots-de-passe-qui-utilise-des-regex\/","title":{"rendered":"Un g\u00e9n\u00e9rateur de mots de passe qui utilise des regex"},"content":{"rendered":"<p>Vous avez d\u00e9j\u00e0 gal\u00e9r\u00e9 \u00e0 cr\u00e9er un mot de passe qui respecte les 42 r\u00e8gles impos\u00e9es par un site un peu trop z\u00e9l\u00e9 ? Genre au moins 16 caract\u00e8res, une majuscule, une minuscule, un chiffre, un caract\u00e8re sp\u00e9cial, et surtout pas le pr\u00e9nom de votre chat ni votre date de naissance ?<\/p>\n<p>C\u2019est le genre de micro-agression qui peut flinguer une matin\u00e9e ^^.<\/p>\n<p>Heureusement, y\u2019a un dev qui a eu une id\u00e9e de g\u00e9nie en <strong>inversat compl\u00e8tement le probl\u00e8me gr\u00e2ce \u00e0 la puissance brute des expressions r\u00e9guli\u00e8res.<\/strong><\/p>\n<p>Son outil s&#8217;appelle <strong><br \/>\n<a href=\"https:\/\/gruhn.github.io\/regex-utils\/password-generator.html\">RegExp Password Generator<\/a><br \/>\n<\/strong> et comme son nom l&#8217;indique, c&#8217;est un g\u00e9n\u00e9rateur de mots de passe qui fonctionne avec des regex. Au lieu de cocher des cases un peu nazes dans une interface classique, vous d\u00e9finissez vos contraintes ligne par ligne sous forme d&#8217;expressions r\u00e9guli\u00e8res.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/generateur-mot-de-passe-regex-contraintes\/generateur-mot-de-passe-regex-contraintes-1.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Par exemple, vous balancez <code>^.{16,32}$<\/code> pour imposer une longueur entre 16 et 32 caract\u00e8res, <code>[0-9]<\/code> pour exiger au moins un chiffre, and <code>[A-Z]<\/code> pour une majuscule. L\u2019outil va alors calculer l\u2019intersection de tous vos patterns pour vous sortir 5 mots de passe al\u00e9atoires qui matchent absolument toutes vos r\u00e8gles simultan\u00e9ment.<\/p>\n<p>L&#8217;outil repose heureusement sur la biblioth\u00e8que TypeScript <strong>@gruhn\/regex-utils<\/strong>. Pour ceux qui font du code, vous savez que manipuler des regex pour faire des intersections ou des compl\u00e9ments, c&#8217;est normalement une purge monumentale que la plupart des langages de programmation ne g\u00e8rent pas nativement.<\/p>\n<p>C&#8217;est pourquoi ici, la lib fait tout le sale boulot de calcul d&#8217;ensemble pour s&#8217;assurer que vos contraintes ne sont pas contradictoires. Si vous demandez un truc impossible (genre un mot de passe qui doit \u00eatre compos\u00e9 uniquement de chiffres ET uniquement de lettres), l\u2019outil vous le dit direct au lieu de mouliner dans le vide.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/generateur-mot-de-passe-regex-contraintes\/generateur-mot-de-passe-regex-contraintes-2.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Et tout tourne en local dans votre navigateur donc c&#8217;est cool pour la vie priv\u00e9e, par contre, gardez en t\u00eate que la lib supporte un sous-ensemble bien pr\u00e9cis de la syntaxe RegExp de JavaScript. Inutile donc tenter des trucs ultra exotiques comme les <em><br \/>\n<a href=\"https:\/\/fr.javascript.info\/regexp-lookahead-lookbehind\">lookbehinds<\/a><br \/>\n<\/em> complexes, l&#8217;outil risque de vous renvoyer une erreur.<\/p>\n<p>Le c\u00f4t\u00e9 pratique, c&#8217;est que vos contraintes sont directement encod\u00e9es dans l&#8217;URL. Du coup, vous pouvez bookmarker une config pr\u00e9cise pour un site sp\u00e9cifique ou la partager avec vos coll\u00e8gues sans avoir \u00e0 tout retaper \u00e0 chaque fois. Un petit compteur affiche m\u00eame le nombre total de combinaisons possibles avec vos r\u00e8gles, histoire de v\u00e9rifier que vous n&#8217;avez pas cr\u00e9\u00e9 un mot de passe trop pr\u00e9visible (ou au contraire, un truc tellement restrictif qu&#8217;il n&#8217;existe qu&#8217;une seule possibilit\u00e9).<\/p>\n<p>Bref, j&#8217;ai trouv\u00e9 \u00e7a original !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vous avez d\u00e9j\u00e0 gal\u00e9r\u00e9 \u00e0 cr\u00e9er un mot de passe qui respecte les 42 r\u00e8gles impos\u00e9es par un site un peu trop z\u00e9l\u00e9 ? Genre au moins 16 caract\u00e8res, une majuscule, une minuscule, un chiffre, un caract\u00e8re sp\u00e9cial, et surtout pas le pr\u00e9nom de votre chat ni votre date de naissance ? C\u2019est le genre de micro-agression qui peut flinguer une matin\u00e9e ^^. Heureusement, y\u2019a un dev qui a eu une id\u00e9e de g\u00e9nie en inversat compl\u00e8tement le probl\u00e8me gr\u00e2ce \u00e0 la puissance brute des expressions r\u00e9guli\u00e8res. Son outil s&#8217;appelle RegExp Password Generator et comme son nom l&#8217;indique, c&#8217;est un g\u00e9n\u00e9rateur de mots de passe qui fonctionne avec des regex. Au lieu de cocher des cases un peu nazes dans une interface classique, vous d\u00e9finissez vos contraintes ligne par ligne sous forme d&#8217;expressions r\u00e9guli\u00e8res. Par exemple, vous balancez ^.{16,32}$ pour imposer une longueur entre 16 et 32 caract\u00e8res, [0-9] pour exiger au moins un chiffre, and [A-Z] pour une majuscule. L\u2019outil va alors calculer l\u2019intersection de tous vos patterns pour vous sortir 5 mots de passe al\u00e9atoires qui matchent absolument toutes vos r\u00e8gles simultan\u00e9ment. L&#8217;outil repose heureusement sur la biblioth\u00e8que TypeScript @gruhn\/regex-utils. Pour ceux qui font du code, vous savez que manipuler des regex pour faire des intersections ou des compl\u00e9ments, c&#8217;est normalement une purge monumentale que la plupart des langages de programmation ne g\u00e8rent pas nativement. C&#8217;est pourquoi ici, la lib fait tout le sale boulot de calcul d&#8217;ensemble pour s&#8217;assurer que vos contraintes ne sont pas contradictoires. Si vous demandez un truc impossible (genre un mot de passe qui doit \u00eatre compos\u00e9 uniquement de chiffres ET uniquement de lettres), l\u2019outil vous le dit direct au lieu de mouliner dans le vide. Et tout tourne en local dans votre navigateur donc c&#8217;est cool pour la vie priv\u00e9e, par contre, gardez en t\u00eate que la lib supporte un sous-ensemble bien pr\u00e9cis de la syntaxe RegExp de JavaScript. Inutile donc tenter des trucs ultra exotiques comme les lookbehinds complexes, l&#8217;outil risque de vous renvoyer une erreur. Le c\u00f4t\u00e9 pratique, c&#8217;est que vos contraintes sont directement encod\u00e9es dans l&#8217;URL. Du coup, vous pouvez bookmarker une config pr\u00e9cise pour un site sp\u00e9cifique ou la partager avec vos coll\u00e8gues sans avoir \u00e0 tout retaper \u00e0 chaque fois. Un petit compteur affiche m\u00eame le nombre total de combinaisons possibles avec vos r\u00e8gles, histoire de v\u00e9rifier que vous n&#8217;avez pas cr\u00e9\u00e9 un mot de passe trop pr\u00e9visible (ou au contraire, un truc tellement restrictif qu&#8217;il n&#8217;existe qu&#8217;une seule possibilit\u00e9). Bref, j&#8217;ai trouv\u00e9 \u00e7a original !<\/p>\n","protected":false},"author":1,"featured_media":2204,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2203","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2203"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2203\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2204"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}