bcrypt āĻŦāύāĻžāĻŽ Argon2: āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻ āϏā§āĻāĻŋāĻāϏ āĻŦā§āĻā§ āύā§āĻā§āĻž
bcrypt āĻŦāύāĻžāĻŽ Argon2 āĻŦā§āϝāĻžāĻā§āϝāĻž: āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϤā§āϞāύāĻž, āĻŦāĻžāϏā§āϤāĻŦ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻāϰāĻ āĻāĻŦāĻ āĻāϧā§āύāĻŋāĻ āĻāϝāĻŧā§āĻŦ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻā§ āύā§āĻŦā§āύāĨ¤

āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻā§ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ āĻāϰā§\n\nāĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄāĻā§ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāϰāĻžāϏāϰāĻŋ āϏāĻāϰāĻā§āώāĻŖ āύāĻž āĻāϰā§āĻ āϤāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻžāϰ āϏāĻā§āώāĻŽāϤāĻž āĻĻā§āϝāĻŧāĨ¤ āĻā§āĻ āϏāĻžāĻāύ āĻāĻĒ āĻāϰāϞ⧠āϏāĻžāϰā§āĻāĻžāϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄāĻā§ āĻāĻāĻāĻŋ āĻāϝāĻŧāĻžāύ-āĻāϝāĻŧā§ āĻĢāĻžāĻāĻļāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒāĻžāĻ āĻžāϝāĻŧ āĻāĻŦāĻ āĻĢāϞāĻžāĻĢāϞ (āĻšā§āϝāĻžāĻļ) āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āĨ¤ āϞāĻāĻāύā§, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϝ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻžāĻāĻĒ āĻāϰā§āĻā§ āϤāĻž āĻāĻŦāĻžāϰ āĻšā§āϝāĻžāĻļ āĻāϰ⧠āϏāĻāϰāĻā§āώāĻŋāϤ āĻŽāĻžāύā§āϰ āϏāĻā§āĻā§ āϤā§āϞāύāĻž āĻāϰāĻž āĻšāϝāĻŧāĨ¤\n\nāĻāĻāĻāĻŋ āĻšā§āϝāĻžāĻļ āĻāύāĻā§āϰāĻŋāĻĒāĻļāύ āύāϝāĻŧāĨ¤ āĻāĻāĻŋāĻā§ āĻĄāĻŋāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰāĻžāϰ āĻāĻĒāĻžāϝāĻŧ āύā§āĻāĨ¤ āĻāĻ āĻāϝāĻŧāĻžāύ-āĻāϝāĻŧā§ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§āϰ āĻāύā§āϝ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāĻžāϰāĻŖāĨ¤\n\nāϤāĻžāĻšāϞ⧠āĻā§āύ SHA-256 āĻŽāϤ āĻĻā§āϰā§āϤ āĻšā§āϝāĻžāĻļ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āύ āύāĻž? āĻāĻžāϰāĻŖ āĻĻā§āϰā§āϤāĻ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āĻĻā§āϰ āĻĒāĻāύā§āĻĻāĨ¤ āϝāĻĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻā§āϰāĻŋ āĻšāϝāĻŧ, āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āϰāĻž āĻāĻ āĻāĻāĻāĻŋ āĻāϰ⧠āϞāĻāĻāύ āĻāϰ⧠āĻ āύā§āĻŽāĻžāύ āĻāϰ⧠āύāĻžāĨ¤ āϤāĻžāϰāĻž āĻā§āϰāĻŋ āĻāϰāĻž āĻšā§āϝāĻžāĻļ āϤāĻžāϞāĻŋāĻāĻžāϰ āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āĻ āĻĢāϞāĻžāĻāύ⧠āĻ āύā§āĻŽāĻžāύ āĻāĻžāϞāĻžāϝāĻŧ āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰā§āϰ āĻā§āώāĻŽāϤāĻž āĻ āύā§āϝāĻžāϝāĻŧā§ āĻĻā§āϰā§āϤ āĻ āύā§āĻŽāĻžāύ āĻāĻžāϞāĻžāϝāĻŧāĨ¤ GPU āĻĻāĻŋāϝāĻŧā§ āĻĻā§āϰā§āϤ āĻšā§āϝāĻžāĻļ āĻŦāĻĄāĻŧ āĻĒāϰāĻŋāϏāϰ⧠āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻ āύāύā§āϝ āϏāĻžāϞā§āĻ āĻĨāĻžāĻāϞā§āĻ āĻāĻāĻāĻŋ āĻĻā§āϰā§āϤ āĻšā§āϝāĻžāĻļ āĻāĻāύāĻ āĻŦā§āϰā§āĻāĻĢā§āϰā§āϏ āĻāϰāĻžāϰ āĻāύā§āϝ āϏāϏā§āϤāĻž āĻšāϝāĻŧāĨ¤\n\nāĻŦāĻžāϏā§āϤāĻŦāϏāĻŽā§āĻŽāϤ āĻŦā§āϝāϰā§āĻĨāϤāĻž āĻŽā§āĻĄāĻāĻž āĻšāϞā§: āĻāĻāĻāĻŋ āĻā§āĻ āĻāϝāĻŧā§āĻŦ āĻ ā§āϝāĻžāĻĒā§āϰ āĻāĻāĻāĻžāϰ āĻā§āĻŦāĻŋāϞ āĻŦā§āϰāĻŋāĻā§ āĻāϞ⧠āϝāĻžāϝāĻŧāĨ¤ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰ⧠āĻāĻŽā§āĻāϞ āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļ āĻĒāĻžāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āϏā§āĻ āĻšā§āϝāĻžāĻļāĻā§āϞ⧠āĻĻā§āϰā§āϤ āĻĢāĻžāĻāĻļāύ āĻĻāĻŋāϝāĻŧā§ āϤā§āϰāĻŋ āĻšāϝāĻŧ, āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻŦāĻ āĻā§āĻ āĻā§āϝāĻžāϰāĻŋāϝāĻŧā§āĻļāύ āĻĻā§āϰā§āϤ āĻā§āĻā§ āϝāĻžāϝāĻŧāĨ¤ āϤāĻžāϰāĻĒāϰ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰ⧠āĻāĻāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻ āύā§āϝ āϏāĻžāĻāĻā§ āĻā§āώā§āĻāĻž āĻāϰ⧠(credential stuffing), āĻŦāĻž āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āĻāĻā§āĻ-āĻĒā§āϰāĻŋāĻāĻŋāϞā§āĻ āĻĢāĻŋāĻāĻžāϰ⧠āĻĒā§āϰāĻŦā§āĻļā§āϰ āĻā§āώā§āĻāĻž āĻāϰā§āĨ¤\n\nāĻāĻāĻāĻŋ āĻāĻžāϞ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļ āĻ āύā§āĻŽāĻžāύāĻā§ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻāϰ⧠āϤā§āϞā§āĨ¤ āϞāĻā§āώā§āϝ "āĻ āĻāĻžāϤā§āϝ" āύāϝāĻŧâāϞāĻā§āώā§āϝ āĻšāϞ⧠"āĻ āύā§āĻ āϧā§āϰ āĻ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āϝāĻžāϤ⧠āĻāĻā§āϰāĻŽāĻŖ āĻāϰāĻž āĻĻāϰāĻāĻžāϰāĻŋ āύāĻž āĻšāϝāĻŧāĨ¤"\n\nāĻāĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻ āϏā§āĻāĻāĻĒ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ:\n\n- āĻāĻāĻĻāĻŋāĻ āĻĨā§āĻā§ (āĻāϝāĻŧāĻžāύ-āĻāϝāĻŧā§) āϝāĻžāĻāĻžāĻ āĻāϰāĻž āϝāĻžāϝāĻŧ, āĻāϞā§āĻāĻžāύ⧠āϝāĻžāϝāĻŧ āύāĻž\n- āĻĒā§āϰāϤāĻŋ āĻ āύā§āĻŽāĻžāύ āϧā§āϰ āĻšāϤ⧠āĻšāĻŦā§\n- āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰā§āϰ (āĻŦāĻŋāĻļā§āώ āĻāϰ⧠GPU) āĻāύā§āϝ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻšāϤ⧠āĻšāĻŦā§\n- āĻŦāĻžāϏā§āϤāĻŦ āϞāĻāĻāύ āĻāĻāύāĻ āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āϞāĻžāĻāĻžāϰ āĻŽāϤ⧠āĻĻā§āϰā§āϤ āĻšāϤ⧠āĻšāĻŦā§\n- āϏāĻŽāϝāĻŧā§āϰ āϏāĻžāĻĨā§ āĻāϏā§āĻ āĻŦāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āύā§āĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻ ā§āϝāĻžāĻĄāĻāĻžāϏā§āĻā§āĻŦāϞ āĻšāϤ⧠āĻšāĻŦā§\n\n## āĻāĻ āĻŽāĻŋāύāĻŋāĻā§ bcrypt āĻāĻŦāĻ Argon2\n\nāϝāĻāύ āĻāĻĒāύāĻŋ bcrypt āĻŦāύāĻžāĻŽ Argon2 āϤā§āϞāύāĻž āĻāϰā§āύ, āĻāĻĒāύāĻŋ āĻŦā§āĻā§ āύāĻŋāĻā§āĻā§āύ āĻāĻŋāĻāĻžāĻŦā§ āĻĄāĻžāĻāĻžāĻŦā§āϏ āϞāĻŋāĻā§āϰ āĻĒāϰ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻ āύā§āĻŽāĻžāύ āϧā§āϰ āĻāϰāĻŦā§āύāĨ¤\n\nbcrypt āĻĒā§āϰāύ⧠āĻāĻŦāĻ āĻŦāĻŋāϏā§āϤā§āϤāĻāĻžāĻŦā§ āϏāĻžāĻĒā§āϰā§āĻā§āĻĄ āĻ āĻĒāĻļāύāĨ¤ āĻāĻāĻŋ CPU-āĻāĻŋāϤā§āϤāĻŋāĻāĻāĻžāĻŦā§ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻāĻŦāĻ āĻāϰ āĻāĻāĻāĻŋ āĻĒā§āϰāϧāĻžāύ āĻāĻŋāĻāύāĻŋāĻ āύāĻžāĻŦāĻŦ āĻāĻā§: āĻāϏā§āĻ āĻĢā§āϝāĻžāĻā§āĻāϰāĨ¤ āĻāĻāĻŋ "āύāĻŋāϰā§āĻŦāĻŋāĻāĻžāϰ⧠āĻāĻžāϞā§"âāϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϤ⧠āϏāĻšāĻā§ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ, āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰāĻž āϏāĻšāĻ āĻāĻŦāĻ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧāĨ¤\n\nArgon2 āύāϤā§āύ āĻāĻŦāĻ āĻŽā§āĻŽāϰāĻŋ-āĻšāĻžāϰā§āĻĄ āĻšāĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āϤā§āϰāĻŋāĨ¤ āĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻ āύā§āĻŽāĻžāύāĻā§ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝ āĻĒāϰāĻŋāĻŽāĻžāĻŖ RAM āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϤ⧠āĻĒāĻžāϰā§, āĻļā§āϧā§āĻŽāĻžāϤā§āϰ CPU āύāϝāĻŧāĨ¤ āĻāĻāĻž āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāĻžāϰāĻŖ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āϰāĻž āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ GPU āĻŦāĻž āĻŦāĻŋāĻļā§āώāĻžāϝāĻŧāĻŋāϤ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ⧠āĻĒā§āϰāĻā§āϰ āĻ āύā§āĻŽāĻžāύ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ⧠āĻāĻžāϞāĻŋāϝāĻŧā§ āϏāĻĢāϞ āĻšāϝāĻŧāĨ¤ āĻŽā§āĻŽāϰāĻŋ āϏā§āĻ āϧāϰāύā§āϰ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ⧠āϏā§āĻā§āϞ āĻāϰāĻž āĻāĻ āĻŋāύ āĻāĻŦāĻ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞāĨ¤\n\nArgon2-āĻāϰ āϤāĻŋāύāĻāĻŋ āĻā§āϝāĻžāϰāĻŋāϝāĻŧā§āύā§āĻ āĻāĻā§:\n\n- Argon2i: āĻāĻŋāĻā§ āϏāĻžāĻāĻĄ-āĻā§āϝāĻžāύā§āϞ āĻāĻā§āϰāĻŽāĻŖā§āϰ āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āϰā§āϏāĻŋāϏā§āĻā§āϝāĻžāύā§āϏ⧠āĻā§āϰ āĻĻā§āϝāĻŧ\n- Argon2d: GPU āĻĒā§āϰāϤāĻŋāϰā§āϧ⧠āĻā§āϰā§āϤā§āĻŦ āĻāϰā§āĻĒ āĻāϰā§, āϏāĻžāĻāĻĄ-āĻā§āϝāĻžāύā§āϞ āĻŦāĻŋāĻŦā§āĻāύāĻžāĻā§āϞ⧠āϏāĻš\n- Argon2id: āĻāĻāϝāĻŧā§āϰ āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻŽāĻŋāĻļā§āϰāĻŖ, āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āϏāĻžāϧāĻžāϰāĻŖ āĻĄāĻŋāĻĢāϞā§āĻ\n\nāĻāĻĒāύāĻžāϰ āϏā§āĻā§āϝāĻžāĻ āϝāĻĻāĻŋ Argon2id āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āĻāĻŦāĻ āĻāĻĒāύāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻāĻāĻžāĻŦā§ āĻŽā§āĻŽāϰāĻŋ āĻāĻŋāĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻŋ āĻāϧā§āύāĻŋāĻ āĻĄāĻŋāĻĢāϞā§āĻ āĻšāĻŋāϏā§āĻŦā§ āϏā§āϰāĻžāĨ¤ āϝāĻĻāĻŋ āĻĒā§āϰāύ⧠āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻŽāĻžāĻā§ āϏāϰā§āĻŦā§āĻā§āĻ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻĻāϰāĻāĻžāϰ āĻšāϝāĻŧ, āϤāĻāύ āϝāĻĨā§āώā§āĻ āĻāĻā§āĻ āĻāϏā§āĻ āĻĢā§āϝāĻžāĻā§āĻāϰ āϏāĻš bcrypt āĻāĻāύāĻ āĻāĻāĻāĻŋ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻĒāĻāύā§āĻĻāĨ¤\n\n## āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞā§\n\nāĻŽā§āϞ āĻĒā§āϰāĻļā§āύ āϏāĻšāĻ: āϝāĻĻāĻŋ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻā§āϰāĻŋ āĻāϰā§, āĻŦā§ āĻĒāϰāĻŋāϏāϰ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻ āύā§āĻŽāĻžāύ āĻāϰāĻž āĻāϤāĻāĻž āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ?\n\nbcrypt-āĻ āĻāĻĒāύāĻŋ āĻāϏā§āĻ (āĻāϝāĻŧāĻžāϰā§āĻ āĻĢā§āϝāĻžāĻā§āĻāϰ) āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰā§āύāĨ¤ āĻāϏā§āĻ āĻŦāĻžāĻĄāĻŧāĻžāϞ⧠āĻĒā§āϰāϤāĻŋ āĻ āύā§āĻŽāĻžāύ āĻāϰ⧠āϏāĻŽāϝāĻŧ āύā§āϝāĻŧāĨ¤ āĻāĻāĻŋ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āĻĻā§āϰ āϧā§āϰ āĻāϰ⧠āĻĻā§āϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻ āϏāĻžāĻĨā§ āĻāĻĒāύāĻžāϰ āύāĻŋāĻā§āϰ āϞāĻāĻāύ āϝāĻžāĻāĻžāĻāĻ āϧā§āϰ āĻāϰā§âāϤāĻžāĻ āĻāĻāĻŋāĻā§ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻŦāĻŋāύā§āĻĻā§āϤ⧠āĻāĻŋāĻāύ āĻāϰāĻž āĻšāϝāĻŧ āϝāĻž āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āĻĻā§āϰ āĻāύā§āϝ āĻāώā§āĻāĻĻāĻžāϝāĻŧāĻ āĻāĻŋāύā§āϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāύā§āϝ āĻā§āϰāĻšāĻŖāϝā§āĻā§āϝāĨ¤\n\nArgon2id-āĻ āĻāĻĒāύāĻŋ āĻāĻžāĻāĻŽ āĻāϏā§āĻā§āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻŽā§āĻŽāϰāĻŋ-āĻšāĻžāϰā§āĻĄāύā§āϏ āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ āύā§āĻŽāĻžāύ CPU āϏāĻŽāϝāĻŧ āĻāĻŦāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ⧠RAM āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰā§āĨ¤ GPU āĻā§āϞ⧠āĻāĻŖāĻŋāϤ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻāĻžāĻāĻā§āϞā§āϤ⧠āĻ āϤā§āϝāύā§āϤ āĻĻā§āϰā§āϤ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻ āύā§āĻŽāĻžāύ āϝāĻĻāĻŋ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝ āĻŽā§āĻŽāϰāĻŋ āĻāĻžāϝāĻŧ āϤāĻŦā§ GPU āĻāϰ āϏā§āĻŦāĻŋāϧāĻž āĻ āύā§āĻāĻāĻžāĻ āĻāĻŽā§ āϝāĻžāϝāĻŧāĨ¤\n\nāϏāĻžāϞā§āĻ āĻ āĻĒāϰāĻŋāĻšāĻžāϰā§āϝāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻ āύāύā§āϝ, āϰā§āϝāĻžāύā§āĻĄāĻŽ āϏāĻžāϞā§āĻ:\n\n- āĻĒā§āϰāĻŋāĻāĻŽā§āĻĒāĻŋāĻāĻā§āĻĄ āĻā§āĻŦāĻŋāϞāĻā§ āĻāĻĒāύāĻžāϰ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻā§āĻĄāĻŧā§ āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻĨā§āĻā§ āϰā§āϧ āĻāϰā§\n- āĻāĻāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĨāĻžāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻ āĻšā§āϝāĻžāĻļ āϤā§āϰāĻŋ āĻšāĻāϝāĻŧāĻž āϰā§āϧ āĻāϰā§\n\nāϏāĻžāϞā§āĻ āĻĻā§āϰā§āĻŦāϞ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄāĻā§ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻāϰ⧠āύāĻžāĨ¤ āĻāĻā§āϞ⧠āĻŽā§āϞāϤ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĢāĻžāĻāϏā§āϰ āĻĒāϰ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āĻĻā§āϰ āĻĒā§āϰāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻŦāĻžāϏā§āϤāĻŦ āĻāĻžāĻ āĻāϰāϤ⧠āĻŦāĻžāϧā§āϝ āĻāϰā§āĨ¤\n\n## bcrypt-āĻāϰ āĻļāĻā§āϤāĻŋ āĻ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻžāϏāĻŽā§āĻš\n\nbcrypt āĻāĻāύ⧠āĻŦā§āϝāĻžāĻĒāĻāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšā§āϤ, āĻĒā§āϰāĻžāϝāĻŧāĻ āĻāĻžāϰāĻŖ āĻāĻāĻŋ āϏāĻŦ āĻāĻžā§āĻāĻžā§ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āϏāĻšāĻāĨ¤ āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻžāϞ⧠āĻĢāĻŋāĻ āϝāĻāύ āĻāĻĒāύāĻžāĻā§ āĻŦāĻŋāϏā§āϤā§āϤ āĻāύā§āϤāϰā§āĻāĻžāϤāĻŋāĻ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻĻāϰāĻāĻžāϰ, āĻāĻĒāύāĻžāϰ āϏā§āĻā§āϝāĻžāĻā§āϰ āĻā§āϰāĻŋāĻĒā§āĻā§ āĻ āĻĒāĻļāύ āϏā§āĻŽāĻŋāϤ, āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āϏāĻšāĻ āĻāĻŋāĻāύāĻŋāĻ āϞāĻŋāĻāĻžāϰ āĻāĻžāύāĨ¤\n\nāĻŦāĻĄāĻŧ âāĻāĻāĻāĻžâ āĻšāϞ⧠72-āĻŦāĻžāĻāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏā§āĻŽāĻžāĨ¤ bcrypt āĻā§āĻŦāϞ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§āϰ āĻĒā§āϰāĻĨāĻŽ 72 āĻŦāĻžāĻāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ āĻŦāĻžāĻāĻŋ āĻāĻĒā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻĻā§āϰā§āĻ āĻĒāĻžāϏāĻĢā§āϰā§āĻ āĻŦāĻž āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻŽā§āϝāĻžāύā§āĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāύā§āϝ āĻāĻāĻŋ āĻāĻļā§āĻāϰā§āϝ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤\n\nāĻāĻĒāύāĻŋ bcrypt āĻŦā§āĻā§ āύāĻŋāϞ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻā§āϰā§āĻā§āϝā§āϰ āĻāĻāϰāĻŖ āϏā§āĻĒāώā§āĻ āĻāϰ⧠āĻāĻžāύāĻžāύāĨ¤ āĻ āĻĨāĻŦāĻž āĻāĻāĻāĻŋ āϏāϰā§āĻŦā§āĻā§āĻ āĻĻā§āϰā§āĻā§āϝ (āĻŦāĻžāĻāĻā§, āĻāϰāĻŋāϤā§āϰ⧠āύāϝāĻŧ) āĻā§āϰ āĻĻāĻŋāύ āĻ āĻĨāĻŦāĻž āĻĻā§āϰā§āĻ āĻāύāĻĒā§āĻāĻā§āϞ⧠āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻāĻāĻžāĻŦā§ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰā§āύāĨ¤ āĻĒā§āϰāϧāĻžāύ āĻŦāĻŋāώāϝāĻŧ āĻšāϞ⧠āύā§āϰāĻŦā§ āĻā§āϰāĻžāĻā§āĻā§āĻļāύ āĻāĻĄāĻŧāĻžāύ⧠āϝāĻžāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϝāĻž āĻŽāύ⧠āĻāϰāĻā§āύ āϤāĻžāϰ āϏāĻžāĻĨā§ āϤāĻžāĻĻā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄāĻāĻŋ āĻŽāĻŋāϞ⧠āϝāĻžāϝāĻŧāĨ¤\n\nbcrypt āϏāĻŽāϏāĻžāĻŽāϝāĻŧāĻŋāĻ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻā§āϰā§āϝāĻžāĻāĻŋāĻ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰā§āϰ āϤā§āϞāύāĻžā§ āĻāĻŽ āĻĒā§āϰāϤāĻŋāϰā§āϧā§āĨ¤ āĻāϰ āĻĒā§āϰāϤāĻŋāϰāĻā§āώāĻž āĻāĻāύāĻ āĻŦā§āϧ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āĻŦāĻŋāĻļā§āώāĻāĻžāĻŦā§ āĻĒā§āϰāϤāĻŋ āĻ āύā§āĻŽāĻžāύāĻā§ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āϰāĻžāĻāĻžāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§âāĻ āϰā§āĻĨāĻžā§ āĻāϏā§āĻ āĻĢā§āϝāĻžāĻā§āĻāϰ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻāϰā§āϰāĻŋāĨ¤\n\nāĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āύāϤā§āύ āϏāĻŋāϏā§āĻā§āĻŽ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻāϰāĻā§āύ āĻŦāĻž āĻāĻā§āĻ-āĻŽā§āϞā§āϝā§āϰ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻĨāĻžāĻā§ (āĻĒā§āĻāĻĄ āĻĒā§āϞā§āϝāĻžāύ, āĻ ā§āϝāĻžāĻĄāĻŽāĻŋāύ), āϤāĻžāĻšāϞ⧠āύāϤā§āύ āĻšā§āϝāĻžāĻļāĻā§āϞā§āĻā§ Argon2id-āĻ āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāĻž āĻāĻŦāĻ āĻāĻāĻ āϏāĻžāĻĨā§ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ bcrypt āĻšā§āϝāĻžāĻļāĻā§āϞā§āĻā§ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϞāĻāĻāύ āĻāϰāϞ⧠āĻā§āϰāĻšāĻŖ āĻāϰāĻž āϏāĻžāϧāĻžāϰāĻŖ āĻ āĻāĻŽ-āĻā§āĻāĻāĻŋāϰ āĻĒāĻĨāĨ¤\n\n## Argon2-āĻāϰ āĻļāĻā§āϤāĻŋ āĻ āĻā§āϰā§āĻĄāĻ āĻĢ\n\nArgon2 āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻā§ā§āϰ āĻāύā§āϝ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻāĻŋāĻŽ Argon2id āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰ⧠āĻāĻžāϰāĻŖ āĻāĻāĻŋ GPU āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻ āϏāĻžāĻāĻĄ-āĻā§āϝāĻžāύā§āϞ āϏā§āϰāĻā§āώāĻžāϰ āĻŽāϧā§āϝ⧠āϏāĻŽāϤāĻž āϰāĻžāĻā§āĨ¤\n\nArgon2id āĻāĻĒāύāĻžāĻā§ āϤāĻŋāύāĻāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĻā§āϝāĻŧ:\n\n- Memory (m): āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻšā§āϝāĻžāĻļ āĻāĻžāϞāĻžāύā§āϰ āϏāĻŽāϝāĻŧ āĻāϤ RAM āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāĻŦā§\n- Time/iterations (t): āĻŽā§āĻŽāϰāĻŋāϰ āĻāĻĒāϰ āĻāϤāĻŦāĻžāϰ āĻĒāĻžāϏ āĻāϰāĻž āĻšāĻŦā§\n- Parallelism (p): āĻāϤāĻāĻŋ āϞā§āĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§ (āĻŽāĻžāϞā§āĻāĻŋ-āĻā§āϰ CPUs-āĻ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§)\n\nāĻŽā§āĻŽāϰāĻŋ āĻšāϞ⧠āĻĒā§āϰāϧāĻžāύ āϏā§āĻŦāĻŋāϧāĻžāĨ¤ āϝāĻĻāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ āύā§āĻŽāĻžāύ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝ āĻĒāϰāĻŋāĻŽāĻžāĻŖ RAM āĻāĻžāύ, āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āϰāĻž āĻāĻāĻ āϏāĻŽāϝāĻŧā§ āĻ āύā§āĻāĻā§āϞ⧠āĻ āύā§āĻŽāĻžāύ āĻāĻžāϞāĻžāϤ⧠āĻšāϞ⧠RAM āĻā§āώāĻŽāϤāĻž āĻ āĻŦā§āϝāĻžāύā§āĻĄāĻāĻāĻĨā§āϰ āĻāύā§āϝ āĻĒā§āϰāĻā§āϰ āĻāϰāĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤\n\nāύā§āĻāϏāĻžāύ āĻšāϞ⧠āĻ āĻĒāĻžāϰā§āĻļāύāĻžāϞ: āĻĒā§āϰāϤāĻŋ āĻšā§āϝāĻžāĻļ āĻŦā§āĻļāĻŋ āĻŽā§āĻŽāϰāĻŋ āϞāĻžāĻāϞ⧠āĻāĻĒāύāĻžāϰ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻāϏāĻŽāϝāĻŧā§ āĻāĻŽ āĻāύāĻāĻžāϰā§āύā§āĻ āϞāĻāĻāύ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻŽā§āĻŽāϰāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āϏā§āĻ āĻāϰā§āύ, āϞāĻāĻāύ āϏā§āĻĒāĻžāĻāĻāϏā§āϰ āϏāĻŽāϝāĻŧ āĻāĻŋāĻ āϤā§āϰāĻŋ āĻšāĻāϝāĻŧāĻž, āĻāĻžāĻāĻŽāĻāĻāĻ āĻŦāĻž āĻāĻāĻ-āĻ āĻĢ-āĻŽā§āĻŽāϰāĻŋ āϏāĻŽāϏā§āϝāĻž āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻž āĻĻā§āϰā§āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāĻžāĻŦāϤā§āĻ āĻšāĻŦā§: āĻ āύā§āĻ āĻāύāĻāĻžāϰā§āύā§āĻ āϞāĻāĻāύ āĻā§āώā§āĻāĻž āϝāĻĻāĻŋ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āύāĻž āĻāϰāĻž āĻšāϝāĻŧ āϤāĻŦā§ āĻāĻāĻŋ āϰāĻŋāϏā§āϰā§āϏ āϏāĻŽāϏā§āϝāĻž āϏā§āώā§āĻāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤\n\nArgon2id āύāĻŋāϰāĻžāĻĒāĻĻ āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝ āϰāĻžāĻāϤ⧠āĻāĻāĻžāĻā§ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻŦā§āĻļāĻŋāώā§āĻā§āϝā§āϰ āĻŽāϤ⧠āĻāĻŋāĻāύ āĻāϰā§āύ:\n\n- āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ-āϏāĻĻā§āĻļ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ⧠āĻŦā§āĻā§āĻāĻŽāĻžāϰā§āĻ āĻāϰā§āύ\n- āĻāύāĻāĻžāϰā§āύā§āĻ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻāĻžāĻ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āĻāϰā§āύ (āĻāϝāĻŧāĻžāϰā§āĻāĻžāϰ āĻā§āϝāĻžāĻĒ, āĻāĻŋāĻ)\n- āϞāĻāĻāύ āĻā§āώā§āĻāĻž āϰā§āĻ-āϞāĻŋāĻŽāĻŋāĻ āĻāϰā§āύ āĻāĻŦāĻ āĻŦāĻžāϰāĻŦāĻžāϰ āĻŦā§āϝāϰā§āĻĨ āĻšāϞ⧠āϞāĻ āĻāĻāĻ āĻĻāĻŋāύ\n- āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āϏā§āĻāĻŋāĻāϏ āϏāĻā§āĻāϤ āϰāĻžāĻā§āύ āϝāĻžāϤ⧠āĻāĻāĻāĻŋ āĻĻā§āϰā§āĻŦāϞ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ āĻāĻžāϰā§āĻā§āĻ āύāĻž āĻšāϝāĻŧ\n\n## āĻŦāĻžāϏā§āϤāĻŦ āĻāϝāĻŧā§āĻŦ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻāϰāĻ\n\nāĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻāϝāĻŧā§ "āĻĻā§āϰā§āϤāϤāĻžāĻ āĻāĻžāϞā§" āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āϞ āϞāĻā§āώā§āϝāĨ¤ āĻāĻĒāύāĻŋ āĻāĻžāύ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ āύā§āĻŽāĻžāύ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āϰ āĻāύā§āϝ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻšā§āĻ, āϤāĻŦā§ āĻŦāĻžāϏā§āϤāĻŦ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāύā§āϝ āϞāĻāĻāύ āĻĻā§āϰā§āϤ āϞāĻžāĻā§āĨ¤\n\nāĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻāĻĒāĻžāϝāĻŧ āĻšāϞ⧠āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻā§āϤ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āϝāĻžāĻāĻžāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻŽāϝāĻŧ āĻŦāĻžāĻā§āĻ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻžāĨ¤ āĻ āύā§āĻ āĻāĻŋāĻŽ āĻĒā§āϰāĻžāϝāĻŧ 100 āĻĨā§āĻā§ 300 ms āĻĒā§āϰāϤāĻŋ āĻšā§āϝāĻžāĻļ āĻā§āĻ āϞāĻā§āώā§āϝ āĻāϰā§, āĻāĻŋāύā§āϤ⧠āϏāĻ āĻŋāĻ āϏāĻāĻā§āϝāĻž āĻāĻĒāύāĻžāϰ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻ āϏāĻžāϰā§āĻāĻžāϰ āύāĻŋāϰā§āĻāϰāĨ¤ bcrypt āĻ Argon2-āϰ āĻŽāϧā§āϝ⧠āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻšāϞ⧠āĻāĻĒāύāĻŋ āĻā§āĻĨāĻžāϝāĻŧ āĻāϰāĻ āĻāϰāĻā§āύ: bcrypt āĻŽā§āϞāϤ CPU āϏāĻŽāϝāĻŧā§ āĻāϰāĻ āĻāϰā§, āϝā§āĻāĻžāύ⧠Argon2 āĻŽā§āĻŽāϰāĻŋ āϰāĻŋāĻāĻžāϰā§āĻāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤\n\n### āĻāĻāĻāĻŋ āϞāĻā§āώā§āϝ āϏāĻŽāϝāĻŧ āĻŦā§āĻā§ āύāĻŋāύ, āϤāĻžāϰāĻĒāϰ āĻŽāĻžāĻĒā§āύ\n\nāĻāĻāĻāĻŋ āϞāĻā§āώā§āϝ āĻšā§āϝāĻžāĻļ āϏāĻŽāϝāĻŧ āĻŦā§āĻā§ āύāĻŋāύ āĻāĻŦāĻ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ-āϏāĻĻā§āĻļ āĻļāϰā§āϤ⧠āϤāĻž āĻā§āϏā§āĻ āĻāϰā§āύāĨ¤ āϏāĻžāĻāύāĻāĻĒ/āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ-āĻā§āĻāĻā§āĻ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻāĻŦāĻ āϞāĻāĻāύ āϝāĻžāĻāĻžāĻ āĻĻā§āĻā§āĻ āĻŽāĻžāĻĒā§āύ, āĻāĻŋāύā§āϤ⧠āϞāĻāĻāύāĻā§ āĻšāĻ āĻĒāĻžāĻĨ āĻšāĻŋāϏā§āĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύāĨ¤\n\nāĻšāĻžāϞāĻāĻž āĻāĻāύā§āϰ āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāϰāĻŽā§āύā§āĻ āĻĒā§āϞā§āϝāĻžāύ:\n\n- 1, 10, āĻāĻŦāĻ 50 āĻāύāĻāĻžāϰā§āύā§āĻ āϞāĻāĻāύ āĻā§āĻ āĻā§āϏā§āĻ āĻāϰā§āύ āĻāĻŦāĻ p50 āĻ p95 āϞā§āϝāĻžāĻā§āύā§āϏāĻŋ āϰā§āĻāϰā§āĻĄ āĻāϰā§āύ\n- āĻā§āϝāĻžāĻļāĻŋāĻ āĻ CPU āĻŦā§āϏā§āĻāĻŋāĻ āĻĨā§āĻā§ āĻļāĻŦā§āĻĻ āĻāĻŽāĻžāϤ⧠āϰāĻžāύāĻā§āϞ⧠āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āĻāϰā§āύ\n- āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāϞ āĻāϞāĻžāĻĻāĻž āĻŽāĻžāĻĒā§āύ āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻāĻžāύā§āύ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻāϏāϞ⧠āĻāϤ āĻāϰāĻ āĻāϰāĻā§\n- āĻāĻāĻ āĻāύā§āĻā§āĻāύāĻžāϰ āĻ CPU āϞāĻŋāĻŽāĻŋāĻ āύāĻŋāϝāĻŧā§ āĻā§āϏā§āĻ āĻāϰā§āύ āϝā§āĻāĻž āĻāĻĒāύāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰāĻŦā§āύ\n\n### āϏā§āĻĒāĻžāĻāĻāĻā§āϞ⧠āĻāĻĄāĻŧā§āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ\n\nāĻ āύā§āĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻļāĻŋāĻāϰ⧠āĻŦā§āϝāϰā§āĻĨ āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻžāϰā§āĻā§āĻāĻŋāĻ āĻāĻŽā§āĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϞāĻāĻāύ⧠āĻĸā§āϞ⧠āĻĻā§āϝāĻŧ, āĻāĻĒāύāĻžāϰ āĻšā§āϝāĻžāĻļāĻŋāĻ āϏā§āĻāĻŋāĻāϏāĻ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻŦā§ āϏāĻŋāϏā§āĻā§āĻŽ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻžāĻļā§āϞ āĻĨāĻžāĻāĻŦā§ āĻāĻŋ āύāĻžāĨ¤\n\nāϝāĻĻāĻŋ āĻāĻāĻāĻŋ āϝāĻžāĻāĻžāĻāĻāϰāĻŖ 250 ms āύā§āϝāĻŧ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻāϏāĻžāĻĨā§ 40āĻāĻŋ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŋāĻ āĻšāĻāϝāĻŧāĻžāϰ āĻāĻā§, 500 āϞāĻāĻāύ āĻ āύā§āϰā§āϧā§āϰ āĻāĻ āϏā§āĻĒāĻžāĻāĻ āĻŽāĻŋāϞāĻŋāϝāĻŧāύ āϏā§āĻā§āύā§āĻĄā§āϰ āĻ āĻĒā§āĻā§āώāĻžāϝāĻŧ āĻĒāϰāĻŋāĻŖāϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŽāύ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻāϏā§āĻ āϏāĻžāĻŽāĻžāύā§āϝ āĻāĻŽāĻžāύ⧠āĻāĻŦāĻ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āϰā§āĻ-āϞāĻŋāĻŽāĻŋāĻ āĻāĻĄāĻŧāĻž āĻāϰāĻž āĻŦāĻžāϏā§āϤāĻŦā§ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻŦāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§, āϤā§āϞāύāĻžāϝāĻŧ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§āϞ⧠āĻāĻŽāύ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āĻ ā§āϞ⧠āĻĻā§āĻāϝāĻŧāĻž āϝā§āĻāĻžāύ⧠āϞāĻāĻāύ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ āĻāĻā§āĻā§āϰ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤\n\n### āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻāĻāĻŋāĻ āϞāĻāĻāύāĻā§ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽā§āϝāĻŧ āϰāĻžāĻā§āύ\n\nāĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻ āĻĒāĻžāϰā§āĻļāύ āĻāĻāĻ āĻāϰā§āϰā§āϤāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāϰ⧠āύāĻžāĨ¤ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻāĻāĻŋāĻ āϞāĻāĻāύā§āϰ āĻāϏā§āĻ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āϰāĻžāĻā§āύ, āϤāĻžāϰāĻĒāϰ āĻāĻžāϰ⧠āĻāĻžāĻ āĻā§āϰāĻŋāĻāĻŋāĻāĻžāϞ āĻĒāĻžāĻĨā§āϰ āĻŦāĻžāĻāϰ⧠āύāĻŋāϝāĻŧā§ āϝāĻžāύāĨ¤ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻšāϞ⧠rehash-on-login (āϏāĻĢāϞ āϞāĻāĻāύā§āϰ āĻ āĻŋāĻ āĻĒāϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻšā§āϝāĻžāĻļ āĻāĻĒāĻā§āϰā§āĻĄ āĻāϰāĻž) āĻŦāĻž āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āĻāĻŦāĻā§āϞ⧠āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻ āĻāĻŽāĻĒā§āϰā§āĻā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāĨ¤\n\n## āϧāĻžāĻĒā§ āϧāĻžāĻĒā§ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻāĻŋāĻāĻžāĻŦā§ āĻŦāĻžāĻāĻŦā§āύ\n\nāĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻāĻŋāĻāύ āĻāϰāĻž āĻŽāĻžāύ⧠āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āĻĻā§āϰ āĻĒā§āϰāϤāĻŋ āĻ āύā§āĻŽāĻžāύ āĻāϰāĻ āĻŦāĻžāĻĄāĻŧāĻžāύā§, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āϏāĻžāĻāύ-āĻāύ āϧā§āϰ āĻŦāĻž āϏāĻžāϰā§āĻāĻžāϰāĻā§ āĻ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āύāĻž āĻāϰāĻžāĨ¤\n\n1. āĻāĻĒāύāĻžāϰ āϏā§āĻā§āϝāĻžāĻ āĻāĻžāϞāĻāĻžāĻŦā§ āĻā§āύ āĻāϞāĻā§āϰāĻŋāĻĻāĻŽ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āϤāĻž āĻŦā§āĻā§ āύāĻŋāύāĨ¤ Argon2id āϝāĻĻāĻŋ āĻāĻžāϞ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āĻĨāĻžāĻā§ āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĄāĻŋāĻĢāϞā§āĻ; āύāĻž āĻšāϞ⧠bcrypt āĻ āĻŋāĻ āĻāĻā§āĨ¤\n\n2. āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ-āϏāĻĻā§āĻļ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ⧠āĻĒā§āϰāϤāĻŋ āĻšā§āϝāĻžāĻļā§āϰ āϞāĻā§āώā§āϝ āϏāĻŽāϝāĻŧ āϏā§āĻ āĻāϰā§āύāĨ¤ āĻĒāĻŋāĻ āϞā§āĻĄā§āϰ āϏāĻŽāϝāĻŧāĻ āϞāĻāĻāύ āĻŽāϏā§āĻŖ āϰāĻžāĻā§ āĻāĻŽāύ āĻāĻŋāĻā§ āĻŦā§āĻā§ āύāĻŋāύāĨ¤\n\n3. āĻāĻžāĻāĻŽ āĻšāĻŋāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŋāĻāύ āĻāϰā§āύāĨ¤ bcrypt-āĻ āĻāϏā§āĻ āĻĢā§āϝāĻžāĻā§āĻāϰ āϏāĻŽāύā§āĻŦāϝāĻŧ āĻāϰā§āύāĨ¤ Argon2id-āĻ āĻŽā§āĻŽāϰāĻŋ, āĻāĻāĻžāϰā§āĻļāύ, āĻāĻŦāĻ āĻĒā§āϝāĻžāϰāĻžāϞāĻžāϞāĻŋāĻāĻŽ āĻŦā§āϝāĻžāϞāĻžāύā§āϏ āĻāϰā§āύāĨ¤ āĻŽā§āĻŽāϰāĻŋ āĻšāϞ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āϰ āĻ āϰā§āĻĨāύā§āϤāĻŋāĻā§ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āĨ¤\n\n4. āĻšā§āϝāĻžāĻļā§āϰ āϏāĻā§āĻā§ āĻāϞāĻā§āϰāĻŋāĻĻāĻŽ āĻ āϏā§āĻāĻŋāĻāϏ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύāĨ¤ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļ āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāĻ āĻŦāĻŋāĻŦāϰāĻŖ āĻāĻŽāĻŦā§āĻĄ āĻāϰā§āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āĻāĻĒāύāĻžāϰ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĢāĻŋāϞā§āĻĄ āϝāĻĨā§āώā§āĻ āϞāĻŽā§āĻŦāĻž āϝā§āύ āĻšā§āϝāĻžāĻļ āĻāĻāύāĻ āĻā§āϰāĻžāĻā§āĻā§āĻ āύāĻž āĻšāϝāĻŧāĨ¤\n\n5. āϰāĻŋāĻšā§āϝāĻžāĻļ-āĻ āύ-āϞāĻāĻāύ āĻĻāĻŋāϝāĻŧā§ āĻāĻĒāĻā§āϰā§āĻĄ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āĻāϰā§āύāĨ¤ āϝāĻāύ āĻāĻāĻāĻžāϰ āϞāĻāĻāύ āĻāϰā§, āϝāĻĻāĻŋ āϤāĻžāĻĻā§āϰ āϏāĻāϰāĻā§āώāĻŋāϤ āĻšā§āϝāĻžāĻļ āĻāĻĒāύāĻžāϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻĒāϞāĻŋāϏāĻŋāϰ āĻĨā§āĻā§ āĻĻā§āϰā§āĻŦāϞ āĻšāϝāĻŧ, āϰāĻŋāĻšā§āϝāĻžāĻļ āĻāϰ⧠āϤāĻž āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύāĨ¤\n\n### āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āϏā§āĻāĻžāϰā§āĻāĻŋāĻ āĻĒāϝāĻŧā§āύā§āĻ\n\nāĻĒāϰāĻŋāĻŽāĻžāĻĒā§āϰ āĻāĻā§ āϝāĻĻāĻŋ āĻŦā§āϏāϞāĻžāĻāύ āĻĻāϰāĻāĻžāϰ āĻšāϝāĻŧ, āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āĻļā§āϰ⧠āĻāϰā§āύ āĻāĻŦāĻ āĻāĻžāĻāĻŽāĻŋāĻ āĻĻā§āĻā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻāϰā§āύāĨ¤\n\n- bcrypt-āĻāϰ āĻāύā§āϝ āĻ āύā§āĻ āĻĻāϞ āĻāϏā§āĻ 12 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āĻāĻŦāĻ āĻŦāĻžāϏā§āϤāĻŦ āĻŽāĻžāĻĒ āĻ āύā§āϝāĻžāϝāĻŧā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻāϰā§āĨ¤\n- Argon2id-āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻŦā§āϏāϞāĻžāĻāύ āĻšāϞ⧠āĻŽā§āĻŽāϰāĻŋ āĻāϝāĻŧā§āĻ āĻĻāĻļāĻŽā§āĻāĻžāĻŦāĻžāĻāĻ āĻĨā§āĻā§ āĻāϝāĻŧā§āĻ āĻļāϤ MB āĻĒāϰāĻŋāϏāϰā§, āĻāĻžāĻāĻŽ āĻāϏā§āĻ 2â4, āĻāĻŦāĻ āĻĒā§āϝāĻžāϰāĻžāϞāĻžāϞāĻŋāĻāĻŽ 1â2āĨ¤\n\nāĻāĻā§āϞ⧠āύā§āϤāĻŋāĻŽāĻžāϞāĻž āύāϝāĻŧ, āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻŦāĻŋāύā§āĻĻā§ āĻŽāĻžāϤā§āϰāĨ¤ āϏāĻ āĻŋāĻ āϏā§āĻāĻŋāĻāϏ āĻšāϞ⧠āϝāĻž āĻāĻĒāύāĻžāϰ āĻā§āϰāĻžāĻĢāĻŋāĻ, āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ, āĻ āĻĒāĻŋāĻ āϞāĻāĻāύ āĻŦāĻžāϰā§āϰ āϏāĻā§āĻā§ āĻāĻžāĻĒ āĻāĻžāϝāĻŧāĨ¤\n\n## āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏā§āĻā§āϰā§āĻ āĻĻā§āϰā§āĻŦāϞ āĻāϰ⧠āĻāĻŽāύ āϏāĻžāϧāĻžāϰāĻŖ āĻā§āϞāϏāĻŽā§āĻš\n\nāĻ āϧāĻŋāĻāĻžāĻāĻļ āĻŦā§āϝāϰā§āĻĨāϤāĻž āϏā§āĻāĻāĻĒā§āϰ āĻĢāĻžāĻāĻ āĻĨā§āĻā§ āĻāϏā§, āύāĻž āĻāϞāĻā§āϰāĻŋāĻĻāĻŽ āĻā§āώāϤāĻŋāĻā§āϰāϏā§āϤ āĻšāĻāϝāĻŧāĻžāϝāĻŧāĨ¤\n\nāϏāĻžāϞā§āĻ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻā§āϞ āĻŦāĻĄāĻŧ āĻāĻāĻāĻŋ āϏāĻŽāϏā§āϝāĻžāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄāĻ āύāĻŋāĻā§āϰ āĻāϞāĻžāĻĻāĻž āϏāĻžāϞā§āĻ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ āĻāĻŦāĻ āϏā§āĻāĻž āĻšā§āϝāĻžāĻļā§āϰ āϏāĻā§āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āϏāĻžāϞā§āĻ āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŦāĻž āĻāĻāĻāĻŋ āĻā§āϞā§āĻŦāĻžāϞ āϏāĻžāϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āϰāĻž āĻāĻĒāύāĻžāϰ āĻāĻžāĻ āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻžāĻāύā§āĻ āϤā§āϞāύāĻž āĻāϰāĻž āϏāĻšāĻ āĻāϰ⧠āϤā§āϞā§āĨ¤\n\nāĻāϏā§āĻ āĻāĻĒā§āĻā§āώāĻž āĻāϰā§āĻāĻāĻŋ āĻŦā§āϝāĻžāĻĒāĻ āϏāĻŽāϏā§āϝāĻžāĨ¤ āĻĻāϞāĻā§āϞ⧠āĻĒā§āϰāĻžāϝāĻŧāĻ āĻāĻŽ āĻāϏā§āĻ āύāĻŋāϝāĻŧā§ āĻāĻžāϞ⧠āĻāϰ⧠āĻāĻžāϰāĻŖ āϞāĻāĻāύ āĻĻā§āϰā§āϤ āϞāĻžāĻā§, āϤāĻžāϰāĻĒāϰ āĻāĻāύāĻ āϤāĻž āĻĒā§āύāϰā§āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰ⧠āύāĻžāĨ¤ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻāύā§āύāϤ āĻšāϝāĻŧ, āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āϰāĻž āĻŦāĻĄāĻŧ āĻšāϝāĻŧā§ āĻāĻ ā§, āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻāĻāϏāĻŽāϝāĻŧ āĻ āĻŋāĻ āĻšāĻāϝāĻŧāĻž āϏā§āĻāĻŋāĻāϏ āϏāϏā§āϤāĻž āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤\n\nArgon2 āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻāĻŋāĻāύ āĻāϰāĻžāĻ āϏāĻžāϧāĻžāϰāĻŖâāĻŽā§āĻŽāϰāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāϞ⧠āĻāĻžāĻāĻā§ āĻāĻžāϞ⧠āĻĻā§āĻāĻžāϞā§āĻ āĻŦāĻžāϏā§āϤāĻŦā§ āϞāĻāĻāύ āϧā§āϰ āĻšāĻāϝāĻŧāĻž, āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻŦā§āϝāĻžāĻāϞāĻ āĻŦāĻž OOM āĻāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤\n\nāĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻā§āϰā§āĻā§āϝ āĻšā§āϝāĻžāύā§āĻĄāϞāĻŋāĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ, āĻŦāĻŋāĻļā§āώ āĻāϰ⧠bcrypt-āĻāϰ 72-āĻŦāĻžāĻāĻ āĻāĻāϰāĻŖā§āĨ¤ āĻĻā§āϰā§āĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻ āύā§āĻŽā§āĻĻāύ āĻāϰ⧠āĻāĻŋāύā§āϤ⧠āύā§āϰāĻŦā§ āĻā§āϰāĻžāĻā§āĻā§āĻ āĻāϰāϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāύā§āϝ āĻŦāĻŋāĻā§āϰāĻžāύā§āϤāĻŋ āĻ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻšā§āϰāĻžāϏ āĻāĻā§āĨ¤\n\nāĻāϝāĻŧā§āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻ āĻā§āϝāĻžāϏ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŽāϏā§āϝāĻž āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰā§:\n\n- āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§āϰ āĻāύā§āϝ āĻ āύāύā§āϝ āϏāĻžāϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ (āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻĻāĻŋāϝāĻŧā§ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻžāύ)\n- āϞā§āĻĄ āĻā§āϏā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āĻāĻāĻāĻŋ āύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āϏāĻŽāϝāĻŧ āĻĒāϰ⧠āϏā§āĻāĻŋāĻāϏ āĻĒā§āύāϰā§āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύ\n- Argon2 āĻŽā§āĻŽāϰāĻŋ āĻāĻŋāĻāύ āĻāϰā§āύ āĻĒāĻŋāĻ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻ āύā§āϏāĻžāϰā§, āĻļā§āϧ⧠āϏāĻŋāĻā§āĻā§āϞ-āϞāĻāĻāύ āĻŦā§āĻā§āĻāĻŽāĻžāϰā§āĻ āύāϝāĻŧ\n- āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻā§āϰā§āĻā§āϝā§āϰ āϏā§āĻŽāĻž āϏā§āĻĒāώā§āĻ āĻāĻŦāĻ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ āĻāϰā§āύ\n- āϞāĻāĻāύ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§āϰ āĻāĻžāϰāĻĒāĻžāĻļā§ āĻāύāĻāĻžāϰā§āύā§āϏāĻŋ āϞāĻŋāĻŽāĻŋāĻ āĻāĻŦāĻ āĻŽāύāĻŋāĻāϰāĻŋāĻ āϰāĻžāĻā§āύ\n\n## āύāĻŋāϰāĻžāĻĒāĻĻ āϏā§āĻāĻāĻĒā§āϰ āĻĻā§āϰā§āϤ āĻā§āĻāϞāĻŋāϏā§āĻ\n\nāĻļāĻŋāĻĒ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ āĻāύāĻĢā§āϰāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āϤāĻžāϞāĻŋāĻāĻžāĻāĻŋ āĻĒāĻžāĻļā§ āϰāĻžāĻā§āύ:\n\n- āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§ āĻ āύāύā§āϝ āϏāĻžāϞā§āĻ, āϰā§āϝāĻžāύā§āĻĄāĻŽāĻāĻžāĻŦā§ āĻā§āύāĻžāϰā§āĻ āĻāϰ⧠āĻšā§āϝāĻžāĻļā§āϰ āϏāĻā§āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ\n- āĻĒāĻŋāĻ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻāĻŋāĻā§ āĻāĻŋāĻā§ āĻā§āĻāϏāĻ āĻāĻŽāύ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻāϏā§āĻ, āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ-āϏāĻĻā§āĻļ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ⧠āϞā§āĻĄ āĻā§āϏā§āĻ āϏāĻš āϝāĻžāĻāĻžāĻ āĻāϰāĻž\n- āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§āϞ⧠āĻšā§āϝāĻžāĻļā§āϰ āϏāĻā§āĻā§ āϏāĻāϰāĻā§āώāĻŋāϤ āϰāĻžāĻā§āύ āϝāĻžāϤ⧠āĻĒā§āϰāύ⧠āĻāĻāĻžāĻāύā§āĻ āϝāĻžāĻāĻžāĻ āĻāϰāĻž āϝāĻžāϝāĻŧ āĻ āĻĒāϰ⧠āĻāϏā§āĻ āĻŦāĻžāĻĄāĻŧāĻžāύ⧠āϝāĻžāϝāĻŧ\n- āĻ āύāϞāĻžāĻāύ āĻāĻā§āϰāĻŽāĻŖ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ, āϰā§āĻ-āϞāĻŋāĻŽāĻŋāĻ āĻāĻŦāĻ āĻŦāĻžāϰāĻŦāĻžāϰ āĻŦā§āϝāϰā§āĻĨ āĻšāϞ⧠āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āϞāĻāĻāĻāĻ āϏāĻš\n- āĻāĻĒāĻā§āϰā§āĻĄ āĻĒāĻĨ, āϏāĻžāϧāĻžāϰāĻŖāϤ rehash-on-login\n\nāĻāĻāĻāĻŋ āϏāĻšāĻ āϏā§āύāϏāĻŋāĻāĻŋ āĻā§āĻ: āϏā§āĻā§āĻāĻŋāĻ āĻā§āϏā§āĻ āĻāĻžāϞāĻžāύ āϝā§āĻāĻžāύ⧠āϏāĻĢāϞ āĻ āĻŦā§āϝāϰā§āĻĨ āĻāĻāϝāĻŧ āϧāϰāύā§āϰ āϞāĻāĻāύā§āϰ āĻŦāϰā§āϧāĻŋāϤ āĻĒāĻžāϰā§āĻļā§āĻŦāĻĒā§āϰāĻŦāĻžāĻš āĻāĻā§ āĻāĻŦāĻ āĻāύā§āĻĄ-āĻā§-āĻāύā§āĻĄ āϞā§āϝāĻžāĻā§āύā§āϏāĻŋ, CPU āĻ RAM āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ āϞāĻāĻāύ āĻĒāĻžāĻĨ āϏāĻāĻā§āϰāĻžāĻŽ āĻāϰā§, āĻāϏā§āĻ āĻāĻŋāĻāύ āĻāϰā§āύ āĻāĻŦāĻ āϰā§āĻ-āϞāĻŋāĻŽāĻŋāĻ āĻāĻĄāĻŧāĻž āĻāϰā§āύāĨ¤ āĻŽā§āϞāĻŋāĻ āĻāĻŋāύāĻŋāϏāĻā§āϞ⧠āĻā§āĻā§ āĻĢā§āϞ⧠"fix" āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻŦā§āύ āύāĻž, āϝā§āĻŽāύ āϏāĻžāϞā§āĻāĨ¤\n\n## āĻŦāĻžāϏā§āϤāĻŦ āĻāĻĻāĻžāĻšāϰāĻŖ: āĻāĻāĻāĻŋ āĻā§āĻ āĻāϝāĻŧā§āĻŦ āĻ ā§āϝāĻžāĻĒā§ āĻāĻŋāĻāύāĻŋāĻ\n\nāĻāĻāĻāĻŋ āĻā§āĻ SaaS āĻ ā§āϝāĻžāĻĒ āĻāϞā§āĻĒāύāĻž āĻāϰā§āύ āϝāĻžāϰ āĻāϝāĻŧā§āĻ āĻšāĻžāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻā§āĨ¤ āĻĻāĻŋāύā§āϰ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŽāϝāĻŧ āĻā§āϰāĻžāĻĢāĻŋāĻ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ, āĻāĻŋāύā§āϤ⧠āύāĻŋāĻāĻāϞā§āĻāĻžāϰ āĻĒāĻžāĻ āĻžāύā§āϰ āĻĒāϰ⧠āĻŦāĻž āĻāĻžāĻā§āϰ āĻĻāĻŋāύā§āϰ āĻļā§āϰā§āϤ⧠āĻĻā§āϰā§āϤ āϞāĻāĻāύ āĻŦāϰā§āϧāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻāĻāĻžāύā§āĻ āĻĒāĻāύā§āĻĻāĻāĻŋ āĻā§āϝāĻžāĻĒāĻžāϏāĻŋāĻāĻŋ āĻĒā§āϞā§āϝāĻžāύāĻŋāĻāϝāĻŧā§ āϰā§āĻĒ āύā§ā§āĨ¤\n\nāĻāĻĒāύāĻŋ Argon2id āĻŦā§āĻā§ āύāĻŋāύ āĻ āĻĢāϞāĻžāĻāύ āĻā§āϰā§āϝāĻžāĻāĻŋāĻāϝāĻŧā§āϰ āĻāϰāĻ āĻŦāĻžāĻĄāĻŧāĻžāύā§āϰ āĻāύā§āϝāĨ¤ āĻāĻĒāύāĻžāϰ āĻŦāĻžāϏā§āϤāĻŦ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻāĻĒāϰ āĻāĻāĻāĻŋ āĻāĻžāϰā§āĻā§āĻ āϝāĻžāĻāĻžāĻāĻāϰāĻŖ āϏāĻŽāϝāĻŧ (āĻāĻĻāĻžāĻšāϰāĻŖ: 100â250 ms) āĻŦā§āĻā§ āύāĻŋāύ, āϤāĻžāϰāĻĒāϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§āϞ⧠āĻāĻŋāĻāύ āĻāϰā§āύ āϝāĻžāϤ⧠āϤāĻž āĻŽāĻŋāĻ āĻāϰ⧠āĻāĻŦāĻ RAM āύāĻāϰ⧠āϰāĻžāĻā§āύ, āĻāĻžāϰāĻŖ āĻŽā§āĻŽāϰāĻŋ āϏā§āĻāĻŋāĻāϏ āĻāĻāϏāĻžāĻĨā§ āĻāϤāĻā§āϞ⧠āϞāĻāĻāύ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰāĻž āϝāĻžāϝāĻŧ āϤāĻž āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤\n\nāĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻāĻŋāĻāύāĻŋāĻ āϞā§āĻĒ:\n\n- āύāĻŽā§āϰ āĻāĻāĻžāϰā§āĻļāύ āĻ āĻĒā§āϝāĻžāϰāĻžāϞāĻžāϞāĻŋāĻāĻŽ āĻĻāĻŋā§ā§ āĻļā§āϰ⧠āĻāϰā§āύ\n- āĻāύāĻāĻžāϰā§āύā§āϏāĻŋ āĻ āύāĻŋāĻļā§āĻāĻŋāϤ āϞāĻžāĻāϤ⧠āĻļā§āϰ⧠āĻāϰāϞ⧠āĻŽā§āĻŽāϰāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāύ āϝāϤāĻā§āώāĻŖ āύāĻž āϤāĻž āĻ āϏā§āĻŦāϏā§āϤāĻŋāĻāϰ āĻšā§\n- āĻāĻžāĻāĻŽ āĻāϏā§āĻ āϏā§āĻā§āώā§āĻŽ āĻāϰ⧠āĻ āĻŋāĻ āĻāϰāϤ⧠āĻāĻāĻžāϰā§āĻļāύ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻāϰā§āύ\n- āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻŋāĻā§āĻā§āϞ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āύāϝāĻŧ, āϏāĻŋāĻŽā§āϞā§āĻā§āĻĄ āĻŦāĻžāϰā§āĻĄāϏā§āĻā§āϰ āϏāĻžāĻĨā§ āĻĒā§āύāϰāĻžāϝāĻŧ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ\n\nāĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϤā§āĻŽāϧā§āϝ⧠āĻĻā§āϰā§āĻŦāϞ āϏā§āĻāĻŋāĻāϏā§āϰ āĻĒā§āϰāύ⧠āĻšā§āϝāĻžāĻļ āϰāĻžāĻā§āύ, āϏā§āĻā§āϞ⧠āϝāĻžāĻāĻžāĻ āĻāĻžāϞāĻŋāϝāĻŧā§ āϝāĻžāύ āĻāĻŋāύā§āϤ⧠āϧā§āϰ⧠āϧā§āϰ⧠āĻāĻĒāĻā§āϰā§āĻĄ āĻāϰā§āύāĨ¤ āϏāĻĢāϞ āϞāĻāĻāύā§āϰ āĻĒāϰ⧠āϰāĻŋāĻšā§āϝāĻžāĻļ āĻāϰā§āύ āĻāĻŦāĻ āύāϤā§āύ āĻŽāĻžāύ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ; āϏāĻŽāϝāĻŧā§āϰ āϏāĻžāĻĨā§ āϏāĻā§āϰāĻŋāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āĻŦāĻžāϧā§āϝ āĻāĻžāĻĄāĻŧāĻžāĻ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻšā§āϝāĻžāĻļā§ āĻāϞ⧠āϝāĻžāĻŦā§āĨ¤\n\nāϰāĻŋāϞāĻŋāĻā§āϰ āĻĒāϰ, āϞāĻāĻāύāĻā§ āϝ⧠āĻā§āύāĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāύāĻĄāĻĒāϝāĻŧā§āύā§āĻā§āϰ āĻŽāϤ⧠āĻŽāύāĻŋāĻāϰ āĻāϰā§āύ: āĻā§āĻāϞ āϞā§āϝāĻžāĻā§āύā§āϏāĻŋ (p95/p99), āĻŦāϰā§āϧāĻŋāϤ āϏāĻŽāϝāĻŧā§āϰ CPU āĻ RAM, āĻŦā§āϝāϰā§āĻĨ-āϞāĻāĻāύā§āϰ āϏā§āĻĒāĻžāĻāĻ āĻāĻŦāĻ āĻĒā§āϰāύ⧠āĻšā§āϝāĻžāĻļāĻā§āϞ⧠āĻāĻŋāĻāĻžāĻŦā§ āĻĻā§āϰā§āϤ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāĻā§āĻā§āĨ¤\n\n## āĻĒāϰāĻŦāϰā§āϤ⧠āϧāĻžāĻĒ: āύāĻŋāϰāĻžāĻĒāĻĻāĻāĻžāĻŦā§ āĻļāĻŋāĻĒ āĻāϰā§āύ āĻāĻŦāĻ āĻāύā§āύāϤāĻŋ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻā§āύ\n\nāĻāĻĒāύāĻžāϰ āĻĒāϞāĻŋāϏāĻŋ āϞāĻŋāĻā§ āϰāĻžāĻā§āύ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻā§āĻŦāύā§āϤ āύā§āϤāĻŋāϰ āĻŽāϤ⧠āĻĻā§āĻā§āύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ: âArgon2id āϏāĻā§āĻā§ X āĻŽā§āĻŽāϰāĻŋ, Y āĻāĻāĻžāϰā§āĻļāύ, Z āĻĒā§āϝāĻžāϰāĻžāϞāĻžāϞāĻŋāĻāĻŽâ āĻŦāĻž âbcrypt āĻāϏā§āĻ āĻĢā§āϝāĻžāĻā§āĻāϰ N,â āĻāĻŦāĻ āύā§āĻ āϰāĻžāĻā§āύ āĻā§āύ āϤāĻžāϰāĻŋāĻā§ āĻāĻāĻŋ āĻŦā§āĻā§ āύāĻŋā§ā§āĻā§āύ āĻāĻŦāĻ āĻāĻŦā§ āĻĒā§āύāĻāĻĒāϰā§āϝāĻžāϞā§āĻāύāĻž āĻāϰāĻŦā§āύ (āĻĒā§āϰāϤāĻŋ 6â12 āĻŽāĻžāϏ āĻāĻžāϞ⧠āĻļā§āϰā§)āĨ¤\n\nāĻāĻĒāĻā§āϰā§āĻĄ āĻĒāĻĨ āϰāĻžāĻā§āύ āϝāĻžāϤ⧠āĻĒā§āϰāύ⧠āĻšā§āϝāĻžāĻļā§ āĻāĻāĻā§ āύāĻž āĻĒāĻĄāĻŧā§āύāĨ¤ rehash-on-login āϏāĻšāĻ āĻāĻŦāĻ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻāĻžāϞā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§āĨ¤\n\nāĻāĻāĻāĻŋ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻšā§āϝāĻžāĻļ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§, āĻāĻŋāύā§āϤ⧠āϤāĻž āĻ āύāϞāĻžāĻāύ āĻ ā§āϝāĻžāĻŦāĻŋāĻāĻ āĻāύā§āĻā§āϰā§āϞ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰ⧠āύāĻžāĨ¤ āϰā§āĻ-āϞāĻŋāĻŽāĻŋāĻ, āϞāĻāĻāĻāĻ, āĻāĻŦāĻ āϏāĻžāĻŦāϧāĻžāύāĻžāϤā§āĻŽāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϰāĻŋāϏā§āĻ āĻĢā§āϞ⧠āĻŦāĻžāϏā§āϤāĻŦ āĻŦāĻŋāĻļā§āĻŦā§ āĻāĻāĻāĻāĻžāĻŦā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖāĨ¤\n\nāĻāĻĒāύāĻŋ āϝāĻĻāĻŋ AppMaster-āĻāϰ āĻŽāϤ⧠āύā§-āĻā§āĻĄ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻĻāĻŋāϝāĻŧā§ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āϤā§āϰāĻŋ āĻāϰā§āύ, āϤāĻāύ āϝāĻžāĻāĻžāĻ āĻāϰ⧠āĻĻā§āĻā§āύ āϝ⧠āĻāĻĒāύāĻžāϰ āĻ āĻĨā§āύāĻāĻŋāĻā§āĻļāύ āĻŽāĻĄāĻŋāĻāϞ āĻĄāĻŋāĻĢāϞā§āĻāĻāĻžāĻŦā§ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻāϏā§āĻ āĻ āĻŋāĻ āϏā§āĻ āϧāϰāύā§āϰ āĻāύāĻĢā§āϰāĻžāϏāĻā§āϰāĻžāĻāĻāĻžāϰ⧠āĻāĻŋāĻāύ āĻāϰāĻž āĻāĻā§ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻŋ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰāĻŦā§āύāĨ¤ āϏāĻžāĻŽāĻžāύā§āϝ āĻāĻāĻžāĻŽ āĻā§āϏā§āĻāĻŋāĻāĻ āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āϏā§āώā§āĻāĻŋ āĻāϰ⧠"āύāĻŋāϰāĻžāĻĒāĻĻ āĻ āĻŽāϏā§āĻŖ" āĻāĻŦāĻ "āύāĻŋāϰāĻžāĻĒāĻĻ āĻāĻŋāύā§āϤ⧠āϞā§āĻĄā§ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ āϝā§āĻā§āϝ" āĻāϰ āĻŽāϧā§āϝā§āĨ¤
āĻĒā§āϰāĻļā§āύā§āϤā§āϤāϰ
āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻāĻĒāύāĻžāĻā§ āĻĒā§āϰāĻā§āϤ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāĻāϰāĻā§āώāĻŖ āύāĻž āĻāϰā§āĻ āϞāĻāĻāύ āϝāĻžāĻāĻžāĻ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻāϝāĻŧāĻžāύ-āĻāϝāĻŧā§ āĻšā§āϝāĻžāĻļ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāύāĻĒā§āĻ āĻšā§āϝāĻžāĻļ āĻāϰ⧠āĻĢāϞāĻžāĻĢāϞ āĻŽāĻŋāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§āύ; āϝāĻĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĢāĻžāĻāϏ āĻšāϝāĻŧ, āĻšāĻžāĻŽāϞāĻžāĻāĻžāϰā§āĻĻā§āϰ āĻāĻāύāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻ āύā§āĻŽāĻžāύ āĻāϰāϤ⧠āĻšāĻŦā§ āϏāϰāĻžāϏāϰāĻŋ āĻĒāĻĄāĻŧā§ āύā§āĻāϝāĻŧāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤā§āĨ¤
āĻāύāĻā§āϰāĻŋāĻĒāĻļāύ āĻāĻāĻāĻŋ āĻā§ āĻĻāĻŋāϝāĻŧā§ āĻāϞā§āĻāĻžāύ⧠āϝāĻžāϝāĻŧ, āϤāĻžāĻ āϏā§āĻ āĻā§ āϝāĻĻāĻŋ āĻā§āϰāĻŋ āĻŦāĻž āĻā§āϞ āĻĒāϰāĻŋāĻāĻžāϞāĻŋāϤ āĻšāϝāĻŧ āϤāĻžāĻšāϞ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĒā§āύāϰā§āĻĻā§āϧāĻžāϰāϝā§āĻā§āϝāĨ¤ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻāĻĻā§āĻĻā§āĻļā§āϝāĻŽā§āϞāĻāĻāĻžāĻŦā§ āĻāϝāĻŧāĻžāύ-āĻāϝāĻŧā§: āϏā§āĻā§āϰ āĻāϰāĻž āĻŽāĻžāύāĻā§ "āĻĄāĻŋāĻā§āϰāĻŋāĻĒā§āĻ" āĻāϰ⧠āĻŽā§āϞ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ āύāĻžāĨ¤
SHA-256 āĻŽāϤ⧠āĻĻā§āϰā§āϤ āĻšā§āϝāĻžāĻļ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āĻĻā§āϰ āĻĒāĻāύā§āĻĻ, āĻāĻžāϰāĻŖ āϤāĻžāϰāĻž āϏā§āĻā§āϞā§āύ āĻšā§āϝāĻžāĻļ āϤāĻžāϞāĻŋāĻāĻžāϰ āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āĻ āĻĢāϞāĻžāĻāύāĻāĻžāĻŦā§ āĻā§āĻŦ āĻĻā§āϰā§āϤ āĻ āύā§āĻŽāĻžāύ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§âāĻŦāĻŋāĻļā§āώ āĻāϰ⧠GPU āĻĻāĻŋāϝāĻŧā§āĨ¤ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšā§āϝāĻžāĻļāĻā§āϞ⧠āĻāĻā§āĻāĻžāĻā§āϤāĻāĻžāĻŦā§ āϧā§āϰ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ (āĻāĻŦāĻ āĻāĻĻāϰā§āĻļāĻāĻžāĻŦā§ āĻŽā§āĻŽāϰāĻŋ-āĻšāĻžāϰā§āĻĄ) āϝāĻžāϤ⧠āĻŦāĻĄāĻŧ āϏā§āĻā§āϞ āĻ āύā§āĻŽāĻžāύ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻšāϝāĻŧāĨ¤
āϏāĻžāϞā§āĻ āĻšāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§āϰ āϏāĻžāĻĨā§ āϏāĻāϰāĻā§āώāĻŋāϤ āĻāĻāĻāĻŋ āĻ āύāύā§āϝ, āϰā§āϝāĻžāύā§āĻĄāĻŽ āĻā§āϝāĻžāϞā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄāĻā§ āĻŦāĻŋāĻāĻŋāύā§āύ āĻšā§āϝāĻžāĻļ āϤā§āϰāĻŋāϰ āĻĨā§āĻā§ āĻŦāĻŋāϰāϤ āϰāĻžāĻā§ āĻāĻŦāĻ āĻāĻā§āĻāĻžāϰ āĻĒā§āϰāĻŋāĻĄā§āĻāĻžāϰā§āĻŽāĻŋāύā§āĻĄ āĻā§āĻŦāĻŋāϞāĻā§āϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϰā§āϧ āĻāϰā§, āϤāĻŦā§ āϤāĻž āĻĻā§āϰā§āĻŦāϞ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄāĻā§ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻāϰ⧠āύāĻžâāĻāĻāĻŋ āĻŽā§āϞāϤ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĢāĻžāĻāϏā§āϰ āĻĒāϰ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āĻĻā§āϰ āĻāĻžāĻ āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤
āĻāĻĒāύāĻžāϰ āϏā§āĻā§āϝāĻžāĻ āϝāĻĻāĻŋ Argon2id āĻāĻžāϞāĻāĻžāĻŦā§ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āĻāĻŦāĻ āĻāĻĒāύāĻŋ āĻŽā§āĻŽāϰāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻāĻāĻžāĻŦā§ āĻāĻŋāĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϤāĻŦā§ Argon2id āĻŦā§āĻā§ āύāĻŋāύâāĻāĻžāϰāĻŖ āĻāĻāĻž āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻā§āϰā§āϝāĻžāĻāĻŋāĻ-āĻā§ āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻžāĨ¤ āϝāĻĻāĻŋ āϏāϰā§āĻŦā§āĻā§āĻ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻĻāϰāĻāĻžāϰ āĻāĻŦāĻ āĻāĻāĻāĻŋ āϏāĻšāĻ āĻāĻŋāĻāύāĻŋāĻ āĻŽāĻĄā§āϞ āĻāĻžāύ, āϤāĻžāĻšāϞ⧠bcrypt āĻŦā§āĻā§ āύāĻŋāύ āĻāĻŦāĻ āϝāĻĨā§āώā§āĻ āĻāĻā§āĻ āĻāϏā§āĻ āĻĢā§āϝāĻžāĻā§āĻāϰ āϏā§āĻ āĻāϰā§āύāĨ¤
bcrypt-āĻāϰ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻāĻžāĻŽā§āϞāĻž āĻšāϞ⧠72-āĻŦāĻžāĻāĻ āϏā§āĻŽāĻž: āĻāĻāĻŋ āĻā§āĻŦāϞ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄā§āϰ āĻĒā§āϰāĻĨāĻŽ 72 āĻŦāĻžāĻāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ āĻŦāĻžāĻāĻŋ āĻāĻĒā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻāĻŽāĻā§ āϝāĻžāĻāϝāĻŧāĻžāϰ āĻāĻĄāĻŧāĻžāϤ⧠āĻŦāĻžāĻāĻā§ āϏā§āĻĒāώā§āĻ āϏāϰā§āĻŦā§āĻā§āĻ āĻĻā§āϰā§āĻā§āϝ Enforce āĻāϰā§āύ āĻŦāĻž āĻĻā§āϰā§āĻ āĻāύāĻĒā§āĻāĻā§āϞ⧠āĻāĻāϏāĻā§āĻā§ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰā§āύ āϝāĻžāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āύā§āϰāĻŦā§ āĻā§āϰāĻžāĻā§āĻā§āĻā§āĻĄ āύāĻž āĻšāϝāĻŧāĨ¤
Argon2id-āĻ āĻŽā§āĻŽāϰāĻŋ āĻšāϞ⧠āĻĒā§āϰāϧāĻžāύ āϞāĻŋāĻāĻžāϰ, āĻāĻžāϰāĻŖ āĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ āύā§āĻŽāĻžāύā§āϰ āĻāύā§āϝ RAM āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāϰ⧠āĻāĻŦāĻ āĻāĻ āĻāĻžāϰāĻŖā§ āĻāĻā§āϰāĻŽāĻŖāĻāĻžāϰā§āϰāĻž āĻ āύā§āĻ āĻ āύā§āĻŽāĻžāύ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ⧠āĻāĻžāϞāĻžāϤ⧠āĻā§āϞ⧠āĻŦā§āϝāϝāĻŧ āĻŦāĻžāĻĄāĻŧā§âRAM āĻ āĻŦā§āϝāĻžāύā§āĻĄāĻāĻāĻĨ āϏāĻžāĻļā§āϰāϝāĻŧ āĻāϰ⧠āύāĻžāĨ¤ āϤāĻŦā§ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻŽā§āĻŽāϰāĻŋ āϏā§āĻ āĻāϰāϞ⧠āĻāĻĒāύāĻžāϰ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻ āϏāĻŽāϝāĻŧā§ āĻāĻŽ āĻāύāĻāĻžāϰā§āύā§āĻ āϞāĻāĻāύ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āϤāĻžāĻ āĻĒāĻŋāĻ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāĻŋāĻāύ āĻāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻŦāĻžāϏā§āϤāĻŦ āĻĄā§āĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰā§āϰ āĻāĻĒāϰ āĻĒā§āϰā§āĻŦāύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āϝāĻžāĻāĻžāĻ āϏāĻŽāϝāĻŧ āϞāĻā§āώā§āϝ āĻāϰā§āύ; āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĒā§āϰāϤāĻŋ āĻā§āĻ ~100â300 ms āϞāĻā§āώā§āϝ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻžāϰāĻĒāϰ āĻāύāĻāĻžāϰā§āύā§āϏāĻŋ āϏāĻš āϞā§āĻĄ-āĻā§āϏā§āĻ āĻāϰā§āύāĨ¤ āϏāĻ āĻŋāĻ āϏā§āĻāĻŋāĻāϏ āĻšāϞ⧠āϤāĻž āϝāĻž āϞāĻāĻāύ āĻŦāĻžāϰ⧠āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻžāĻļā§āϞ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻ āĻĢāϞāĻžāĻāύ āĻ āύā§āĻŽāĻžāύāĻā§ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻāϰ⧠āϤā§āϞā§āĨ¤
āĻšā§āϝāĻžāĻļā§āϰ āĻāϞāĻā§āϰāĻŋāĻĻāĻŽ āĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ āĻšā§āϝāĻžāĻļā§āϰ āϏāĻā§āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻĒā§āϰāύ⧠āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āϝāĻžāĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻĒāϰ⧠āĻāϏā§āĻ āĻŦāĻžāĻĄāĻŧāĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻĻā§āϧāϤāĻŋ āĻšāϞ rehash-on-login: āϏāĻĢāϞ āϞāĻāĻāύā§āϰ āĻĒāϰ, āϝāĻĻāĻŋ āϏā§āĻā§āϰ āĻāϰāĻž āĻšā§āϝāĻžāĻļ āĻāĻĒāύāĻžāϰ āĻŦāϰā§āϤāĻŽāĻžāύ āύā§āϤāĻŋāϰ āϤā§āϞāύāĻžāϝāĻŧ āĻĻā§āϰā§āĻŦāϞ āĻšāϝāĻŧ, āϤāĻāύ āύāϤā§āύ āϏā§āĻāĻŋāĻāϏ āĻĻāĻŋāϝāĻŧā§ āϰāĻŋāĻšā§āϝāĻžāĻļ āĻāϰ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύāĨ¤
āϏāĻžāϧāĻžāϰāĻŖ āĻā§āϞāĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āĻāĻā§: āϏāĻžāϞā§āĻ āύāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻŦāĻž āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž, āĻāĻŽ āĻāϏā§āĻ āύāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰ⧠āĻāĻāύāĻ āϤāĻž āĻĒā§āύāĻāĻĒāϰā§āϝāĻžāϞā§āĻāύāĻž āύāĻž āĻāϰāĻž, āĻāĻŦāĻ Argon2-āĻā§ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻāĻŋāĻāύ āĻāϰ⧠āĻŽā§āĻŽāϰāĻŋ āĻāϤ āĻŦā§āĻļāĻŋ āĻāϰāĻž āϝ⧠āϞāĻāĻāύ āϏā§āĻĒāĻžāĻāĻ āϏāĻŽā§ āĻāĻāĻ āĻŦāĻž OOM āĻšāϝāĻŧāĨ¤ bcrypt-āĻāϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĻā§āϰā§āĻā§āϝ āĻāĻāϰāĻŖāĻ āύāĻāϰ āϰāĻžāĻāĻž āĻāϰā§āϰāĻŋāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻž āϞāĻāĻāύ āĻāύāĻĄāĻĒāϝāĻŧā§āύā§āĻāĻā§ āϰā§āĻ-āϞāĻŋāĻŽāĻŋāĻ āĻ āĻļāϰā§āĻ āϞāĻāĻāĻāĻ āĻĻāĻŋāϝāĻŧā§ āϰāĻā§āώāĻž āĻāϰā§āύāĨ¤


