Back to flin
flin

Hachage de mots de passe Argon2 intégré dans FLIN

Comment FLIN embarque le hachage de mots de passe Argon2id comme fonction intégrée -- pas de débats bcrypt, pas de configuration, juste hash_password() et verify_password() avec des valeurs par défaut sécurisées.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 1 min flin
EN/ FR/ ES
flinargon2passwordhashingsecurity

FLIN fait ce choix pour vous. La fonction hash_password() utilise Argon2id avec des paramètres calibrés. La fonction verify_password() effectue une comparaison à temps constant. Il n'y a pas de configuration, pas de sélection d'algorithme et aucun moyen d'utiliser accidentellement MD5.

flinhash = hash_password("correct horse battery staple")
// "$argon2id$v=19$m=65536,t=3,p=4$..."

is_valid = verify_password("correct horse battery staple", hash)
// true ou false

Paramètres par défaut basés sur les recommandations OWASP 2024 : 64 Mo de mémoire, 3 itérations, 4 threads parallèles, hash de 256 bits, sel de 128 bits. Hachage en environ 200 ms -- assez rapide pour les utilisateurs, assez lent pour les attaquants (~57 ans de GPU par mot de passe).

La sortie au format PHC est auto-descriptive : si nous upgratons les paramètres par défaut, verify_password peut toujours vérifier les hashs créés avec les anciens paramètres.


Ceci est la partie 107 de la série "How We Built FLIN".

Navigation de la série : - [106] Security by Design: OWASP Top 10 in the Language - [107] Argon2 Password Hashing Built Into FLIN (vous êtes ici) - [108] JWT Authentication in 3 Lines of FLIN - [109] Rate Limiting and Security Headers

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude zerosuite

Ça marche, et ce n'est pas fini

Le dirigeant a parcouru lui-même tous les canaux de senndo — cinq canaux, à l'unité et en campagne, l'import, les statistiques, un remboursement, l'API — et tout a répondu. Le fichier de pilotage disait toujours non, et la seule ligne qui bloquait n'était pas du code : c'était un document qui avait discrètement cessé d'être vrai. Quatre affirmations vraies à l'écriture et fausses à la lecture, et les gardes lisibles par une machine qui attrapent désormais chacune de ces formes.

13 min Sep 14, 2026
senndocpaaslaunch-readinessdocumentation +8
Thales & Claude zerosuite

Le navigateur entre les mains de Claude : piloter le Chrome du dirigeant

Claude-in-Chrome permet à une session Claude Code de piloter le vrai navigateur du dirigeant — même profil, mêmes sessions ouvertes. Ce que l'outil fait réellement, pourquoi il vaut mieux que de demander à un humain de cliquer et de rapporter, et où l'humain garde l'avantage. Ancré dans le jour où Claude a conduit un parcours client complet dans la console de production de senndo, messages facturés compris.

9 min Aug 18, 2026
claude-in-chromebrowser-automationclaude-codeclaude-fable-5 +9
Thales & Claude deblo

Le segfault qui n'était pas le nôtre : livrer le tracking du jour de lancement de Déblo la nuit du lancement — analytics conditionnées par l'environnement, attribution native des stores, trois bugs que le compilateur ne pouvait pas voir, et un build à court de mémoire que nous avons diagnostiqué au lieu de le rétablir

Le 1er juillet 2026 — jour de lancement — le risque n'a jamais été le texte. C'était les campagnes payantes qui partaient à l'aveugle. Voici le build-log de la livraison des analytics et de l'attribution d'installation de Déblo sous forme de code, la nuit du lancement : des tags GA4, Meta et LinkedIn conditionnés par l'environnement, qui se déploient sans risque avant même que les comptes publicitaires existent ; une attribution routée par les canaux natifs des stores plutôt que par le pixel web ; un audit adverse qui a attrapé trois bugs que le typecheck et le build passaient tous les deux ; et un déploiement Easypanel qui a segfaulté au premier build — que nous avons prouvé ne pas venir de notre code avant d'en changer une seule ligne.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26