bcrypt рдмрдирд╛рдо Argon2: рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреИрд╕реЗ рдЪреБрдиреЗрдВ
bcrypt рдмрдирд╛рдо Argon2: рд╕реБрд░рдХреНрд╖рд╛ рдЧреБрдгреЛрдВ рдХреА рддреБрд▓рдирд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдЧрдд, рдФрд░ рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рдмреИрдХрдПрдВрдбреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреИрд╕реЗ рдЪреБрдиреЗрдВред

рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рдХрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд░рд╣реА рд╣реИ\n\nрдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рдмреИрдХрдПрдВрдб рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕реАрдзреЗ рд╕реНрдЯреЛрд░ рдХрд┐рдП рдмрд┐рдирд╛ рдЙрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рджреЗрддреА рд╣реИред рдЬрдм рдХреЛрдИ рд╕рд╛рдЗрди рдЕрдк рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдПрдХ рд╡рдитАСрд╡реЗ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо (рд╣реИрд╢) рд╕реЗрд╡ рдХрд░рддрд╛ рд╣реИред рд▓реЙрдЧрд┐рди рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд╣реИрд╢ рдХрд░рдХреЗ рд╕реНрдЯреЛрд░ рдХрд┐рдП рдкрд░рд┐рдгрд╛рдо рд╕реЗ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред\n\nрд╣реИрд╢ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣реА рд╡рдитАСрд╡реЗ рдЧреБрдг рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рд╣реИрд╢рд┐рдВрдЧ рдХрд╛ рдХрд╛рд░рдг рд╣реИред\n\nрддреЛ рдлрд┐рд░ рд╕рд╛рдорд╛рдиреНрдп рддреЗрдЬрд╝ рд╣реИрд╢ рдЬреИрд╕реЗ SHAтАС256 рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдХреНрдпреЛрдВрдХрд┐ рддреЗрдЬрд╝ рд╡рд╣реА рдЪреАрдЬрд╝ рд╣реИ рдЬреЛ рд╣рдорд▓рд╛рд╡рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдЧрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдЪреЛрд░реА рд╣реЛ рдЬрд╛рдП, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдкрд╛рд╕рд╡рд░реНрдб рдПрдХтАСрдПрдХ рдХрд░рдХреЗ рд▓реЙрдЧрд┐рди рдХрд░рдХреЗ рдирд╣реАрдВ рдЖрдЬрд╝рдорд╛рддреЗред рд╡реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реИрд╢ рд▓рд┐рд╕реНрдЯ рдкрд░ рдЕрдиреБрдорд╛рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреА рд╢рдХреНрддрд┐ рдЬрд┐рддрдиреА рддреЗрдЬрд╝реА рд╕реЗ рд╣реЛ рд╕рдХреЗ рдЙрддрдиреА рдХреЛрд╢рд┐рд╢реЗрдВ рднреЗрдЬрддреЗ рд╣реИрдВред GPUs рдХреЗ рд╕рд╛рде рддреЗрдЬрд╝ рд╣реИрд╢ рдХреЛ рдмрд╣реБрдд рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЯреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреВрдирд┐рдХ рд╕рд╛рд▓реНрдЯ рдХреЗ рд╕рд╛рде рднреА, рдПрдХ рддреЗрдЬрд╝ рд╣реИрд╢ рдмреНрд░реВрдЯтАСрдлреЛрд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╕реНрддрд╛ рд░рд╣рддрд╛ рд╣реИред\n\nрдпрд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ: рдПрдХ рдЫреЛрдЯрд╛ рд╡реЗрдм рдРрдк рдЕрдкрдирд╛ рдпреВрдЬрд╝рд░ рдЯреЗрдмрд▓ рдмреНрд░рд┐рдЪ рдореЗрдВ рдЦреЛ рджреЗрддрд╛ рд╣реИред рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рдкрд╛рд╕ рдИрдореЗрд▓ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдЖ рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рд╡реЗ рд╣реИрд╢ рддреЗрдЬрд╝ рдлрдВрдХреНрд╢рди рд╕реЗ рдмрдиреЗ рдереЗ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдЫреЛрдЯреЗ рд╕рдВрд╢реЛрдзрди рдЬрд▓реНрджреА рдЯреВрдЯ рдЬрд╛рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдорд▓рд╛рд╡рд░ рд╡рд╣реА рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреНрдп рд╕рд╛рдЗрдЯреНрд╕ рдкрд░ рдЖрдЬрд╝рдорд╛рддрд╛ рд╣реИ (рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рд╕реНрдЯрдлрд┐рдВрдЧ), рдпрд╛ рдЖрдкрдХреЗ рдРрдк рдХреЗ рдЕрдВрджрд░ рдЙрдЪреНрдЪтАСрдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ рдлреАрдЪрд░реНрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред\n\nрдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЛ рдорд╣рдВрдЧрд╛ рдмрдирд╛ рджреЗрддрд╛ рд╣реИред рд▓рдХреНрд╖реНрдп "рдЕрдЯреВрдЯ" рдирд╣реАрдВ рд╣реИтАФрд▓рдХреНрд╖реНрдп рдпрд╣ рд╣реИ рдХрд┐ "рдЗрддрдирд╛ рдзреАрдорд╛ рдФрд░ рдорд╣рдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдЖрдЬрдорд╛рдирд╛ рдлрд╛рдпрджреЗ рдХрд╛ рдирд╣реАрдВ рд░рд╣реЗред"\n\nрдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рд╕реЗрдЯрдЕрдк рдХреЛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:\n\n- рд╡рдитАСрд╡реЗ (рд╡реЗрд░рд┐рдлрд╛рдИ рдХрд░реЗрдВ, рд░рд┐рд╡рд░реНрд╕ рди рдХрд░реЗрдВ)\n- рдкреНрд░рддрд┐ рдЕрдиреБрдорд╛рди рдзреАрдорд╛\n- рд╕рдорд╛рдирд╛рдВрддрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ (рдЦрд╛рд╕рдХрд░ GPUs) рдХреЗ рд▓рд┐рдП рдорд╣рдВрдЧрд╛\n- рдЗрддрдирд╛ рддреЗрдЬрд╝ рдХрд┐ рдЕрд╕рд▓реА рд▓реЙрдЧрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд▓рдЧреЗ\n- рд╕рдорд╛рдпреЛрдЬреНрдп рддрд╛рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдЖрдк рдХреЙрд╕реНрдЯ рдмрдврд╝рд╛ рд╕рдХреЗрдВ\n\n## рдПрдХ рдорд┐рдирдЯ рдореЗрдВ bcrypt рдФрд░ Argon2\n\nрдЬрдм рдЖрдк bcrypt рдмрдирд╛рдо Argon2 рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдпрд╣ рдЪреБрди рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реАрдХ рдХреЗ рдмрд╛рдж рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЛ рдХрд┐рд╕ рддрд░рд╣ рдзреАрдорд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПред\n\nbcrypt рдкреБрд░рд╛рдирд╛ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдкреЛрд░реНрдЯреЗрдб рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЗрд╕реЗ CPUтАСрдорд╣рдВрдЧрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдЯреНрдпреВрдирд┐рдВрдЧ рдиреЙрдм рдПрдХ рд╣реА рд╣реИ: рдХреЙрд╕реНрдЯ рдлреИрдХреНрдЯрд░ред рдпрд╣ "рдмреЛрд░рд┐рдВрдЧ" рд╣реИ, рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ: рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ, рддреИрдирд╛рддреА рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдп рд╣реИред\n\nArgon2 рдирдпрд╛ рд╣реИ рдФрд░ рдореЗрдореЛрд░реАтАСрд╣рд╛рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╣рд░ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП RAM рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рд╡рд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд┐рд░реНрдлрд╝ CPU рдирд╣реАрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд▓рд╛рд╡рд░ рдЕрдХреНрд╕рд░ GPUs рдпрд╛ рд╕реНрдкреЗрд╢рд▓рд╛рдЗрдЬрд╝реНрдб рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЕрдиреБрдорд╛рди рдЪрд▓рд╛рдХрд░ рдЬреАрддрддреЗ рд╣реИрдВред рдореЗрдореЛрд░реА рдЙрд╕ рддрд░рд╣ рдХреА рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рдкрд░ рд╕реНрдХреЗрд▓ рдХрд░рдирд╛ рдХрдард┐рди рдФрд░ рдорд╣рдВрдЧрд╛ рдмрдирд╛рддреА рд╣реИред\n\nArgon2 рдХреЗ рддреАрди рд╡реЗрд░рд┐рдПрдВрдЯ рд╣реИрдВ:\n\n- Argon2i: рдХреБрдЫ рд╕рд╛рдЗрдбтАСрдЪреИрдирд▓ рд╣рдорд▓реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд░реЗрд╕рд┐рд╕реНрдЯреЗрдВрд╕ рдкрд░ рдЬреЛрд░\n- Argon2d: GPU рд░реЗрдЬрд┐рд╕реНрдЯреЗрдВрд╕ рдкрд░ рдЬреЛрд░, рд╕рд╛рдЗрдбтАСрдЪреИрдирд▓ рдкрд░ рдХрдо рдлреЛрдХрд╕\n- Argon2id: рджреЛрдиреЛрдВ рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдорд┐рд╢реНрд░рдг, рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдлреЙрд▓реНрдЯ\n\nрдпрджрд┐ рдЖрдкрдХрд╛ рд╕реНрдЯреИрдХ Argon2id рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЯреНрдпреВрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЖрдзреБрдирд┐рдХ рдбрд┐рдлреЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдкреБрд░рд╛рдиреЗ рд╕рд┐рд╕реНрдЯрдореНрд╕ рдкрд░ рдЕрдзрд┐рдХрддрдо рдХрдореНрдкреИрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рдЪрд╛рд╣рд┐рдП, рддреЛ bcrypt рдЕрднреА рднреА рдПрдХ рдареЛрд╕ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрдм рдЗрд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдЙрдЪреНрдЪ рдХреЙрд╕реНрдЯ рдлреИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред\n\n## рд╕реБрд░рдХреНрд╖рд╛ рдЧреБрдг рдЬреЛ рд╕рдмрд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВ\n\nрдореВрд▓ рд╕рд╡рд╛рд▓ рд╕рд░рд▓ рд╣реИ: рдЕрдЧрд░ рдХреЛрдИ рд╣рдорд▓рд╛рд╡рд░ рдкрд╛рд╕рд╡рд░реНрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдЪреБрд░рд╛ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреБрдорд╛рди рдХрд┐рддрдиреЗ рдорд╣рдВрдЧреЗ рд╣реЛрдВрдЧреЗ?\n\nbcrypt рдореЗрдВ рдЖрдк рдХреЙрд╕реНрдЯ (рд╡рд░реНрдХ рдлреИрдХреНрдЯрд░) рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдХреЙрд╕реНрдЯ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рд░ рдЕрдиреБрдорд╛рди рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЗрд╕рд╕реЗ рд╣рдорд▓рд╛рд╡рд░ рдзреАрдореЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдЖрдкрдХреА рдЕрдкрдиреА рд▓реЙрдЧрд┐рди рдЬрд╛рдБрдЪ рднреА рдзреАрдореА рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реАрдорд╛ рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред\n\nArgon2id рдХреЗ рд╕рд╛рде рдЖрдк рдЯрд╛рдЗрдо рдХреЙрд╕реНрдЯ рдХреЗ рд╕рд╛рдетАСрд╕рд╛рде рдореЗрдореЛрд░реАтАСрд╣рд╛рд░реНрдбрдиреЗрд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд░ рдЕрдиреБрдорд╛рди рдХреЛ CPU рд╕рдордп рдФрд░ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреИрдЯрд░реНрди рдореЗрдВ RAM рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред GPUs рдЧрдгрдирд╛рддреНрдордХ рдХрд╛рдо рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рд╣рд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрдорд╛рди рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдЪрд╛рд╣рд┐рдП рд╣реЛрддреА рд╣реИ рддреЛ рдЙрдирдХрд╛ рд▓рд╛рдн рдмрд╣реБрдд рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред\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 рдХреА рддрд╛рдХрддреЗрдВ рдФрд░ tradeoffs\n\nArgon2 рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред Argon2id рд╡рд╣ рд╡реЗрд░рд┐рдПрдВрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреАрдореЗрдВ рдЪреБрдирддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ GPUтАСрд░рд┐рд╕рд┐рд╕реНрдЯреЗрдВрд╕ рдФрд░ рд╕рд╛рдЗрдбтАСрдЪреИрдирд▓ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рджреЗрддрд╛ рд╣реИред\n\nArgon2id рдЖрдкрдХреЛ рддреАрди рдкреИрд░рд╛рдореАрдЯрд░ рджреЗрддрд╛ рд╣реИ:\n\n- Memory (m): рдХрд┐рддрдиреА RAM рд╣рд░ рд╣реИрд╢ рдЪрд▓рд╛рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рд╣реЛрддреА рд╣реИ\n- Time/iterations (t): рдореЗрдореЛрд░реА рдкрд░ рдХрд┐рддрдиреА рдкрд╛рд╕ рдмрдирд╛рддрд╛ рд╣реИ\n- Parallelism (p): рдХрд┐рддрдиреА lanes рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реИ (рдорд▓реНрдЯреАтАСрдХреЛрд░ CPU рдкрд░ рдорджрджрдЧрд╛рд░)\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. рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдРрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдЯреИрдВрдбрд░реНрдб рд╣реИрд╢ рдлреЙрд░реНрдореИрдЯ рдЗрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдлреАрд▓реНрдб рд▓рдВрдмрд╛ genug рд╣реЛ рддрд╛рдХрд┐ рд╣реИрд╢ рдХрднреА рдХрдЯ рди рдЬрд╛рдПред\n\n5. рд░рд┐рд╣реИрд╢тАСрдСрдитАСрд▓реЙрдЧрд┐рди рдХреЗ рд╕рд╛рде рдЕрдкрдЧреНрд░реЗрдб рдкреНрд▓рд╛рди рд░рдЦреЗрдВред рдЬрдм рдпреВрдЬрд╝рд░ рд▓реЙрдЧрд┐рди рдХрд░реЗ, рддреЛ рдЕрдЧрд░ рдЙрдирдХрд╛ рд╕реНрдЯреЛрд░реНрдб рд╣реИрд╢ рдЖрдкрдХреА рд╡рд░реНрддрдорд╛рди рдиреАрддрд┐ рд╕реЗ рдХрдордЬреЛрд░ рд╣реИ рддреЛ рдирдпрд╛ рд╣реИрд╢ рдмрдирд╛рдХрд░ рдЙрд╕реЗ рдмрджрд▓ рджреЗрдВред\n\n### рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ\n\nрдЕрдЧрд░ рдЖрдкрдХреЛ рдорд╛рдкрди рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдмреЗрд╕рд▓рд╛рдЗрди рдЪрд╛рд╣рд┐рдП, рддреЛ рд╕реБрд░рдХреНрд╖рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред\n\n- bcrypt рдХреЗ рд▓рд┐рдП, рдХрдИ рдЯреАрдореЗрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ cost 12 рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреА рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдкреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓рддреА рд╣реИрдВред\n- Argon2id рдХреЗ рд▓рд┐рдП, рдПрдХ рдЖрдо рдмреЗрд╕рд▓рд╛рдЗрди рд╣реИ рдХреБрдЫ рджрд╕реЛрдВ рд╕реЗ рдХреБрдЫ рд╕реМ MB рдореЗрдореЛрд░реА, time cost 2 рд╕реЗ 4, рдФрд░ parallelism 1 рд╕реЗ 2ред\n\nрдЗрдиреНрд╣реЗрдВ рдирд┐рдпрдо рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╕рдордЭреЗрдВред рд╕рд╣реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд╣реА рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рдкреАрдХ рд▓реЙрдЧрд┐рди рдмрд░реНрд╕реНрдЯреНрд╕ рдХреЗ рдЕрдиреБрд░реВрдк рдмреИрдарддреА рд╣реЛрдВред\n\n## рдкрд╛рд╕рд╡рд░реНрдб рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рдХрдордЬреЛрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ\n\nрдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдлрд▓рддрд╛рдПрдБ рд╕реЗрдЯрдЕрдк рдЧреИрдк рд╕реЗ рдЖрддреА рд╣реИрдВ, рди рдХрд┐ рдХрд┐рд╕реА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╡рд┐рдлрд▓рддрд╛ рд╕реЗред\n\nрд╕рд╛рд▓реНрдЯ рдЧрд▓рддрд┐рдпрд╛рдБ рдмрдбрд╝реА рд╣реЛрддреА рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдпреВрдирд┐рдХ рд╕рд╛рд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕реЗ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рд╕реНрдЯреЛрд░ рдХрд░реЗрдВред рд╕рд╛рд▓реНрдЯреНрд╕ рдХреЛ рд░реАрдпреВрдЬрд╝ рдХрд░рдирд╛, рдпрд╛ рд╕рднреА рдпреВрдЬрд╝рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд▓реЛрдмрд▓ рд╕рд╛рд▓реНрдЯ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛, рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЛ рдХрд╛рдо рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЕрдХрд╛рдЙрдВрдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред\n\nрдХреЙрд╕реНрдЯ рдЙрдкреЗрдХреНрд╖рд╛ рдПрдХ рдЕрдиреНрдп рд╣реИред рдЯреАрдореЗрдВ рдЕрдХреНрд╕рд░ рдХрдо рдХреЙрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд░рддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд▓реЙрдЧрд┐рди рддреЗрдЬрд╝ рд▓рдЧрддрд╛ рд╣реИ, рдлрд┐рд░ рдХрднреА рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рддреАрдВред рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реБрдзрд░рддрд╛ рд╣реИ, рд╣рдорд▓рд╛рд╡рд░ рдмрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреА рдХрднреАтАСрдареАрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд╕реНрддреА рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред\n\nArgon2 рдУрд╡рд░тАСрдЯреНрдпреВрдирд┐рдВрдЧ рднреА рдЖрдо рд╣реИред рдореЗрдореЛрд░реА рдХреЛ рдмреЗрд╣рдж рдКрдБрдЪрд╛ рд╕реЗрдЯ рдХрд░ рджреЗрдирд╛ рдХрд╛рдЧрдЬрд╝ рдкрд░ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ, рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдкрд╛рдЗрдХреНрд╕ рдореЗрдВ рдзреАрд░реЗтАСрдзреАрд░реЗ рд▓реЙрдЧрд┐рди, рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдмреИрдХрд▓реЙрдЧ рдпрд╛ рдЖрдЙрдЯтАСрдСрдлтАСрдореЗрдореЛрд░реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред\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 рдЙрдкрдпреЛрдЧ рджреЗрдЦреЗрдВред рдЕрдЧрд░ рд▓реЙрдЧрд┐рди рдкрд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдХреЙрд╕реНрдЯ рдФрд░ рд░реЗрдЯтАСрд▓рд┐рдорд┐рдЯреНрд╕ рдХреЛ рдЯреНрдпреВрди рдХрд░реЗрдВред рдЗрд╕реЗ "рдареАрдХ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд▓реНрдЯ рдЬреИрд╕реА рдЕрдирд┐рд╡рд╛рд░реНрдп рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдХрд╛рдЯреЗрдВ рдирд╣реАрдВред\n\n## рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг: рдПрдХ рдЫреЛрдЯреЗ рд╡реЗрдм рдРрдк рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдирд┐рдВрдЧ\n\nрдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдПрдХ рдЫреЛрдЯреЗ SaaS рдРрдк рдХреА рдЬрд┐рд╕рдХреЗ рдХреБрдЫ рд╣рдЬрд╝рд╛рд░ рдпреВрдЬрд╝рд░реНрд╕ рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рджрд┐рди рд╕реНрдерд┐рд░рддрд╛ рд░рд╣рддреА рд╣реИ, рдкрд░ рдиреНрдпреВрдЬрд╝рд▓реЗрдЯреНрдЯрд░ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╛ рд╡рд░реНрдХтАСрдбреЗ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЫреЛрдЯреЗ рд▓реЙрдЧрд┐рди рдмрд░реНрд╕реНрдЯреНрд╕ рдЖрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЪреБрдирд╛рд╡ рдХреНрд╖рдорддрд╛ рдирд┐рдпреЛрдЬрди рдмрди рдЬрд╛рддрд╛ рд╣реИред\n\nрдЖрдк рдСрдлрд╝рд▓рд╛рдЗрди рдХреНрд░реИрдХрд┐рдВрдЧ рдХреА рд▓рд╛рдЧрдд рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Argon2id рдЪреБрдирддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдЕрд╕рд▓реА рд╕рд░реНрд╡рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдПрдХ рд▓рдХреНрд╖реНрдп рд╡реЗрд░рд┐рдлрд┐рдХреЗрд╢рди рд╕рдордп рдЪреБрдиреЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 100тАУ250 ms), рдлрд┐рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЗрд╕ рдкрд░ рдЯреНрдпреВрди рдХрд░реЗрдВ рдФрд░ RAM рдкрд░ рдирдЬрд╝рд░ рд░рдЦреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрдореЛрд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдХрд┐ рдЖрдк рдПрдХ рд╕рд╛рде рдХрд┐рддрдиреЗ рд▓реЙрдЧрд┐рди рд╣реИрдВрдбрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред\n\nрдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЯреНрдпреВрдирд┐рдВрдЧ рд▓реВрдк рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:\n\n- рдорд╛рдореВрд▓реА рдЗрдЯрд░реЗрд╢рдиреНрд╕ рдФрд░ рдкреИрд░реЗрд▓рд▓рд┐рдЬреНрдо рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ\n- рддрдм рддрдХ рдореЗрдореЛрд░реА рдмрдврд╝рд╛рдПрдБ рдЬрдм рддрдХ рдХреЙрдиреНрдХрд░реЗрдВрд╕реА рдЕрд╕рд╣рдЬ рди рд▓рдЧреЗ\n- рд╕рдордп рдХреЙрд╕реНрдЯ рдХреЛ рдлрд╛рдЗрдитАСрдЯреНрдпреВрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЯрд░реЗрд╢рдиреНрд╕ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ\n- рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рдмрд░реНрд╕реНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВ, рд╕рд┐рд░реНрдлрд╝ рд╕рд┐рдВрдЧрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдирд╣реАрдВ\n\nрдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдХрдордЬреЛрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд╛рд▓реЗ рдкреБрд░рд╛рдиреЗ рд╣реИрд╢ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╡реЗрд░рд┐рдлрд╛рдИ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ рдкрд░ рдЪреБрдкрдЪрд╛рдк рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред рд╕рдлрд▓ рд▓реЙрдЧрд┐рди рдкрд░ rehash рдХрд░рдХреЗ рдирдпрд╛ рд╡реИрд▓реНрдпреВ рд╕реЗрд╡ рдХрд░реЗрдВред рд╕рдордп рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдордЬрдмреВрдд рд╣реИрд╢реЛрдВ рдкрд░ рдЖ рдЬрд╛рдПрдВрдЧреЗ рдмрд┐рдирд╛ рдлреЛрд░реНрд╕реНрдб рд░рд┐рд╕реЗрдЯ рдХреЗред\n\nрд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рдж рд▓реЙрдЧрд┐рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреА рддрд░рд╣ рдХрд░реЗрдВ: рд▓реЗрдЯреЗрдВрд╕реА (p95/p99), рдмрд░реНрд╕реНрдЯреНрд╕ рдХреЗ рджреМрд░рд╛рди CPU рдФрд░ RAM, рдлреЗрд▓реНрдбтАСрд▓реЙрдЧрд┐рди рд╕реНрдкрд╛рдЗрдХреНрд╕, рдФрд░ рдХрд┐рддрдиреА рддреЗрдЬрд╝реА рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╣реИрд╢ рд░рд┐рдкреНрд▓реЗрд╕ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред\n\n## рдЕрдЧрд▓реЗ рдХрджрдо: рд╕реБрд░рдХреНрд╖рд┐рдд рддреИрдирд╛рддреА рдФрд░ рд╕рддрдд рд╕реБрдзрд╛рд░\n\nрдЕрдкрдиреА рдиреАрддрд┐ рд▓рд┐рдЦрдХрд░ рд░рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЬреАрд╡рд┐рдд рд╕реЗрдЯрд┐рдВрдЧ рдорд╛рдиреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: тАЬArgon2id with X memory, Y iterations, Z parallelismтАЭ рдпрд╛ тАЬbcrypt cost factor N,тАЭ рд╕рд╛рде рдореЗрдВ рддрд╛рд░реАрдЦ рдЬрдм рдЖрдкрдиреЗ рдЗрд╕реЗ рдЪреБрдирд╛ рдФрд░ рдХрдм рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ (рд╣рд░ 6тАУ12 рдорд╣реАрдиреЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдВрддрд░рд╛рд▓ рд╣реИ)ред\n\nрдЕрдкрдЧреНрд░реЗрдб рдкрде рд░рдЦреЗрдВ рддрд╛рдХрд┐ рдЖрдк рдкреБрд░рд╛рдиреЗ рд╣реИрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдлрдВрд╕ рди рдЬрд╛рдПрдБред rehash-on-login рд╕рд░рд▓ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред\n\nрдПрдХ рдордЬрдмреВрдд рд╣реИрд╢ рдорджрджрдЧрд╛рд░ рд╣реИ, рдкрд░ рдпрд╣ рдСрдирд▓рд╛рдЗрди рдЕрдЯреИрдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЬрдЧрд╣ рдирд╣реАрдВ рд▓реЗрддрд╛ред рд░реЗрдЯтАСрд▓рд┐рдорд┐рдЯреНрд╕, рд▓реЙрдХрдЖрдЙрдЯреНрд╕, рдФрд░ рд╕рд╛рд╡рдзрд╛рди рдкрд╛рд╕рд╡рд░реНрдбтАСрд░реАрд╕реЗрдЯ рдлреНрд▓реЛрдЬрд╝ рдЕрд╕рд▓реАтАСрджреБрдирд┐рдпрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЙрддрдиреЗ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред\n\nрдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдмреИрдХрдПрдВрдб no-code рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬреИрд╕реЗ AppMaster рдкрд░ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдбрд┐рдлреЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдордЬрдмреВрдд рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐ рдЖрдкрдХреА рд╣реИрд╢рд┐рдВрдЧ рдХреЙрд╕реНрдЯ рдЙрд╕реА рддрд░рд╣ рдХреЗ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкрд░ рдЯреНрдпреВрди рдХреА рдЧрдИ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рддреИрдирд╛рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдЫреЛрдЯрд╛тАСрд╕рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдЕрдХреНрд╕рд░ тАЬрд╕рд┐рдХреНрдпреЛрд░ рдФрд░ рд╕реНрдореВрджтАЭ рдФрд░ тАЬрд╕рд┐рдХреНрдпреЛрд░ рдкрд░ рд▓реЛрдб рдкрд░ рдЕрдиреБрдкрдпреЛрдЧреАтАЭ рдХреЗ рдмреАрдЪ рдлрд░реНрдХ рддрдп рдХрд░ рджреЗрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди
рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рд╕реНрдЯреЛрд░ рдХрд┐рдП рдмрд┐рдирд╛ рд▓реЙрдЧрд┐рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рджреЗрддреА рд╣реИред рдЖрдк рдПрдХ рд╡рдитАСрд╡реЗ рд╣реИрд╢ рд░рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рд╣реИрд╢ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ; рдЕрдЧрд░ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реАрдХ рд╣реЛ рдЬрд╛рдП рддреЛ рднреА рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдкрдврд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред
рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд░рд┐рд╡рд░реНрд╕рд┐рдмрд▓ рд╣реЛрддрд╛ рд╣реИтАФрдпрджрд┐ рдХреБрдВрдЬреА рдЪреЛрд░реА рд╣реЛ рдЬрд╛рдП рдпрд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдореИрдиреЗрдЬ рд╣реЛ, рддреЛ рдкрд╛рд╕рд╡рд░реНрдб рд╡рд╛рдкрд╕ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣реИрд╢рд┐рдВрдЧ рд╡рдитАСрд╡реЗ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕реНрдЯреЛрд░ рдХрд┐рдП рдЧрдП рдорд╛рди рдХреЛ "рдбреАрдХреНрд░рд┐рдкреНрдЯ" рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
SHAтАС256 рдЬреИрд╕реА рддреЗрдЬрд╝ рд╣реИрд╢ рдлрдВрдХреНрд╢рди рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдСрдлрд╝рд▓рд╛рдЗрди рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдЕрдиреБрдорд╛рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖рдХрд░ GPUs рдХреЗ рд╕рд╛рдеред рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдзреАрдорд╛ (рдФрд░ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдореЗрдореЛрд░реАтАСрд╣рд╛рд░реНрдб) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЕрдиреБрдорд╛рди рдорд╣рдВрдЧрд╛ рд╣реЛ рдЬрд╛рдПред
рд╕рд╛рд▓реНрдЯ рдПрдХ рдпреВрдирд┐рдХ, рд░реИрдВрдбрдо рд╡реИрд▓реНрдпреВ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдХреЗ рд╕рд╛рде рд╕реНрдЯреЛрд░ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╕рдорд╛рди рдкрд╛рд╕рд╡рд░реНрдбреЛрдВ рдХреЛ рдЕрд▓рдЧтАСрдЕрд▓рдЧ рд╣реИрд╢ рдмрдирд╛рддреА рд╣реИ рдФрд░ рдкреНрд░реАрдХрдореНрдкреНрдпреВрдЯреЗрдб рдЯреЗрдмрд▓реНрд╕ рдХреЛ рд░реЛрдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрд╡рдпрдВ рдореЗрдВ рдХрдордЬреЛрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдордЬрдмреВрдд рдирд╣реАрдВ рдмрдирд╛рддреАред
рдпрджрд┐ рдЖрдкрдХрд╛ рд╕реНрдЯреИрдХ Argon2id рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдореЗрдореЛрд░реА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЯреНрдпреВрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ Argon2id рдЪреБрдиреЗрдВтАФрдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рд╡реНрдпрд╛рдкрдХ рдХрдореНрдкреИрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд░рд▓ рдЯреНрдпреВрдирд┐рдВрдЧ рдЪрд╛рд╣рд┐рдП рддреЛ bcrypt рдЪреБрдиреЗрдВ, рдФрд░ рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рдЙрдЪреНрдЪ рдХреЙрд╕реНрдЯ рдлреИрдХреНрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
bcrypt рдХреА 72тАСрдмрд╛рдЗрдЯ рд╕реАрдорд╛ рд╣реИ: рдпрд╣ рдХреЗрд╡рд▓ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдкрд╣рд▓реЗ 72 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдХреА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред рд╕рд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдЯ рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд╛рдИ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдпрд╛ рд▓рдВрдмреЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рд╕реБрд╕рдВрдЧрдд рддрд░реАрдХреЗ рд╕реЗ рд╣реИрдВрдбрд▓ рдХрд░реЗрдВред
Argon2id рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рд╕рдмрд╕реЗ рдЕрд╣рдо рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдпрд╣ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд▓рд╛рд╡рд░ рдХрд┐рддрдиреЗ рдЕрдиреБрдорд╛рди рд╕рдорд╛рдирд╛рдВрддрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ RAM рдФрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреЗ рдмрдбрд╝реЗ рдЦрд░реНрдЪ рдХреЗред рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрдкрдХреА рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдПрдХ рд╕рд╛рде рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрдо рдХрд░ рд╕рдХрддреА рд╣реИтАФрдЗрд╕рд▓рд┐рдП рдкреАрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЯреНрдпреВрди рдХрд░реЗрдВ, рди рдХрд┐ рд╕рд┐рд░реНрдлрд╝ рд╕рд┐рдВрдЧрд▓тАСрдЯреЗрд╕реНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред
рдЕрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдПрдХ рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдп рд╡реЗрд░рд┐рдлрд┐рдХреЗрд╢рди рдЯрд╛рдЗрдо рд░рдЦреЗрдВ, рдЕрдХреНрд╕рд░ рд▓рдЧрднрдЧ 100тАУ300 ms рдкреНрд░рддрд┐ рдЪреЗрдХ, рдлрд┐рд░ рдХреЙрдиреНрдХрд░реЗрдВрд╕реА рдХреЗ рд╕рд╛рде рд▓реЛрдбтАСрдЯреЗрд╕реНрдЯ рдХрд░реЗрдВред рд╕рд╣реА рд╕реЗрдЯрд┐рдВрдЧ рд╡рд╣реА рд╣реИ рдЬреЛ рд▓реЙрдЧрд┐рди рдмрд░реНрд╕реНрдЯреНрд╕ рдХреЗ рджреМрд░рд╛рди рдЙрддреНрддрд░рджрд╛рдпреА рд░рд╣рддреА рд╣реИ рдФрд░ рдСрдлрд╝рд▓рд╛рдЗрди рдЕрдиреБрдорд╛рди рдХреЛ рдорд╣рдВрдЧрд╛ рдмрдирд╛рддреА рд╣реИред
рд╣реИрд╢ рдФрд░ рдЙрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рдкреБрд░рд╛рдиреЗ рдЕрдХрд╛рдЙрдВрдЯреНрд╕ рдХреЛ рд╡реЗрд░рд┐рдлрд╛рдИ рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХреЙрд╕реНрдЯ рдмрдврд╝рд╛ рд╕рдХреЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ rehash-on-login рд╣реИ: рд╕рдлрд▓ рд▓реЙрдЧрд┐рди рдХреЗ рдмрд╛рдж, рдЕрдЧрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрд╢ рдЖрдкрдХреА рд╡рд░реНрддрдорд╛рди рдиреАрддрд┐ рд╕реЗ рдХрдордЬреЛрд░ рд╣реИ рддреЛ рдЙрд╕реЗ рдирдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╣реИрд╢ рдХрд░ рдмрджрд▓ рджреЗрдВред
рдЖрдорддреМрд░ рдкрд░ рдЧрд▓рддрд┐рдпрд╛рдБ рд╕реЗрдЯрдЕрдк рдЧреИрдк рд╕реЗ рдЖрддреА рд╣реИрдВ: рдорд┐рд╕рд┐рдВрдЧ рдпрд╛ рд░рд┐рдкреАрдЯ рдХрд┐рдП рдЧрдП рд╕рд╛рд▓реНрдЯ, рдХрдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЙрд╕реНрдЯ рдФрд░ рдмрд╛рдж рдореЗрдВ рди рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛, рдпрд╛ Argon2 рдХреЛ рдЗрддрдирд╛ рдУрд╡рд░тАСрдЯреНрдпреВрди рдХрд░рдирд╛ рдХрд┐ рд╕реНрдкрд╛рдЗрдХреНрд╕ рдореЗрдВ рд▓реЙрдЧрд┐рди рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛ рдЬрд╛рдПрдВред bcrypt рдХреЗ рд╕рд╛рде рд▓рдВрдмрд╛рдИтАСрд╣реИрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рд▓реЙрдЧрд┐рди рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреА рд╕реБрд░рдХреНрд╖рд╛ (рд░реЗрдЯтАСрд▓рд┐рдорд┐рдЯ, рд╢реЙрд░реНрдЯ рд▓реЙрдХрдЖрдЙрдЯ) рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВред


