Feat: Hash utils #10

Merged
eliott merged 6 commits from feat/hash-utils into develop 2026-03-19 11:02:15 +01:00
Member
No description provided.
eliott requested review from eliott 2026-03-17 16:51:38 +01:00
eliott approved these changes 2026-03-17 17:52:06 +01:00
Dismissed
eliott left a comment

J'ai mis des commentaires aux niveaux des lignes qui ne vont pas.

Tu as aussi oublié la vérification d'un mot de passe par rapport à son hash. Pour la vérification les mots de passes et les hash seront sauvegardé dans la même colonne donc il y aura un séparateur. Si tu veux des explications je peux t'aider. Voici les paramètres qu'il te faudra pour la vérif : string field, string hashBase64, string separator

J'ai mis des commentaires aux niveaux des lignes qui ne vont pas. Tu as aussi oublié la vérification d'un mot de passe par rapport à son hash. Pour la vérification les mots de passes et les hash seront sauvegardé dans la même colonne donc il y aura un séparateur. Si tu veux des explications je peux t'aider. Voici les paramètres qu'il te faudra pour la vérif : string field, string hashBase64, string separator
@ -0,0 +10,4 @@
{
/// <summary>
/// Hashes a password using Argon2id.
/// </summary>

Dans tes paramètres tu peux passer tes paramètres aussi comme ça :
/// The password

Dans tes paramètres tu peux passer tes paramètres aussi comme ça : /// <param name="password">The password</param>
@ -0,0 +11,4 @@
/// <summary>
/// Hashes a password using Argon2id.
/// </summary>
public static string HashPassword(string password, byte[] salt, int memorySizeKB = 65536, int iterations = 4, int degreeOfParallelism = 2)

Mets les différents params dans une constantes en haut de la classe ça sera plus clean et ça évite que quelqu'un les modifie et que ça nique tous les hash suivant. Garde juste le password ici du coup

Aussi augmente les valeurs de memorySize, iterations et degreeOfParallelism pour :

  • memorySize = 1024 * 1024
  • iterations = 4
  • degreeOfParallelism = 8
Mets les différents params dans une constantes en haut de la classe ça sera plus clean et ça évite que quelqu'un les modifie et que ça nique tous les hash suivant. Garde juste le password ici du coup Aussi augmente les valeurs de memorySize, iterations et degreeOfParallelism pour : - memorySize = 1024 * 1024 - iterations = 4 - degreeOfParallelism = 8
@ -0,0 +17,4 @@
using var argon2 = new Argon2id(Encoding.UTF8.GetBytes(password));
// Assign the salt
argon2.Salt = salt;

Tu peux passer tes paramètres directement dans le new Argon2id() en deuxième paramètre

Tu peux passer tes paramètres directement dans le new Argon2id() en deuxième paramètre
@ -0,0 +20,4 @@
argon2.Salt = salt;
// Set memory usage in KB
argon2.MemorySize = memorySizeKB;

same

same
@ -0,0 +23,4 @@
argon2.MemorySize = memorySizeKB;
// Set the number of iterations
argon2.Iterations = iterations;

same

same
@ -0,0 +26,4 @@
argon2.Iterations = iterations;
// Set the number of parallel threads
argon2.DegreeOfParallelism = degreeOfParallelism;

same

same
@ -0,0 +32,4 @@
byte[] hashBytes = argon2.GetBytes(32);
// Return the hash encoded as a Base64 string
return Convert.ToBase64String(hashBytes);

Pourquoi le retourner en base 64 ?

Pourquoi le retourner en base 64 ?
@ -0,0 +38,4 @@
/// <summary>
/// Generates a cryptographically secure random salt.
/// </summary>
public static byte[] GenerateSalt(int length = 16)

Pareil, met le param en haut de la classe comme pour l'autre fonction

Pareil, met le param en haut de la classe comme pour l'autre fonction
eliott requested review from eliott 2026-03-17 17:52:24 +01:00
eliott left a comment

.

.
eliott approved these changes 2026-03-19 11:01:55 +01:00
@ -0,0 +8,4 @@
/// </summary>
public static class HashUtils
{
private const int SaltSize = 16;

Penses la prochaine fois à mettre des commentaires sur les variables aussi

Penses la prochaine fois à mettre des commentaires sur les variables aussi
eliott merged commit f2d727e346 into develop 2026-03-19 11:02:15 +01:00
eliott deleted branch feat/hash-utils 2026-03-19 11:02:15 +01:00
Commenting is not possible because the repository is archived.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
cda-solutions/resources-relationnelles-api!10
No description provided.