Files
Omika/tools/Omika.DiagnosticHashTool/Program.cs
T
2026-10-23 18:46:50 +02:00

46 lines
1.3 KiB
C#

using Omika.Diagnostics.Security;
// ============================================================
// Omika.DiagnosticHashTool — génération HORS LIGNE d'un hash
// PBKDF2-SHA256 pour le COMPTE BOOTSTRAP Diagnostics.Web (T23 §39).
//
// Usage :
// Omika.DiagnosticHashTool "<mot-de-passe-bootstrap>"
// Omika.DiagnosticHashTool --stdin (lit une ligne sur stdin)
//
// ⚠️ Réservé au bootstrap du PREMIER admin Production. Le mot de passe ne
// doit jamais être placé dans Git / le rapport / appsettings versionné.
// Seul le HASH est ensuite mis dans la configuration / le secret store.
// Préférez --stdin pour éviter de laisser le mot de passe dans
// l'historique du shell.
// ============================================================
string? password;
if (args.Length == 0)
{
Console.Error.WriteLine("Usage: Omika.DiagnosticHashTool \"<mot-de-passe>\" | --stdin");
return 2;
}
if (args[0] == "--stdin")
{
password = Console.ReadLine();
}
else
{
password = args[0];
}
if (string.IsNullOrWhiteSpace(password))
{
Console.Error.WriteLine("Mot de passe vide refusé.");
return 2;
}
string hash = DiagnosticPasswordHasher.Hash(password);
// Affichage du HASH uniquement (jamais le mot de passe).
Console.WriteLine(hash);
return 0;