SHA-256 рдХреНрдпрд╛ рд╣реИ?
SHA-256, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ SHA-2 рдкрд░рд┐рд╡рд╛рд░ рдХрд╛ рдПрдХ рд╕рджрд╕реНрдп рд╣реИ, рдЬрд┐рд╕реЗ NIST рджреНрд╡рд╛рд░рд╛ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рд▓рдВрдмрд╛рдИ рдХрд╛ рдЗрдирдкреБрдЯ рд╕рдВрджреЗрд╢ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд 256-рдмрд┐рдЯ (32-рдмрд╛рдЗрдЯ) рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдБ 64 рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╣реА рдЗрдирдкреБрдЯ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕рд┐рд░реНрдлрд╝ рдПрдХ рдЕрдХреНрд╖рд░ рдмрджрд▓рдиреЗ рдкрд░ рднреА рдкреВрд░реА рддрд░рд╣ рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ (рдЗрд╕реЗ рдПрд╡рд▓рд╛рдВрдЪ рдЗрдлрд╝реЗрдХреНрдЯ рдХрд╣рддреЗ рд╣реИрдВ)ред SHA-256 рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ TLS рд╕рд░реНрдЯрд┐рдлрд╝рд┐рдХреЗрдЯ, рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдмреНрд▓реЙрдХрдЪреЗрди (рдмрд┐рдЯрдХреЙрдЗрди) рдФрд░ рдлрд╝рд╛рдЗрд▓-рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдЬрд╛рдБрдЪ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
рдЗрдирдкреБрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рдХреЛрдИ рднреА рдЯреЗрдХреНрд╕реНрдЯ рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдпрд╛ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ рдФрд░ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдЖрдкрдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ UTF-8 рдореЗрдВ рдПрдирдХреЛрдб рдХрд░рддрд╛ рд╣реИ, SHA-256 рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЪрд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЗрдирдкреБрдЯ рдХреА рдмрд╛рдЗрдЯ рд▓рдВрдмрд╛рдИ рднреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЦрд╛рд▓реА рдЗрдирдкреБрдЯ рднреА рдорд╛рдиреНрдп рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирд╛-рдкрд╣рдЪрд╛рдирд╛ рдЦрд╛рд▓реА-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдмрдирд╛рддрд╛ рд╣реИред
рдлрд╝реЙрд░реНрдореВрд▓рд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛
$$\text{Hash} = \operatorname{SHA\text{-}256}\!\left(\text{Input Text}\right)$$
SHA-256 рд╕рдВрджреЗрд╢ рдореЗрдВ рдкреИрдбрд┐рдВрдЧ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕рдХреА рд▓рдВрдмрд╛рдИ 512 рдмрд┐рдЯ рдХрд╛ рдЧреБрдгрдХ рдмрди рдЬрд╛рдП, рдлрд┐рд░ рдЗрд╕реЗ 512-рдмрд┐рдЯ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдмрд╛рдБрдЯрддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмреНрд▓реЙрдХ рдХреЛ 64 рд░рд╛рдЙрдВрдб рдХреА рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдХреНрд░рд┐рдпрд╛рдУрдВ (рд░реЛрдЯреЗрд╢рди, рд╢рд┐рдлрд╝реНрдЯ, AND/XOR, рдореЙрдбреНрдпреВрд▓рд░ рдЬреЛрдбрд╝) рд╕реЗ рдЧреБрдЬрд╝рд╛рд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрда 32-рдмрд┐рдЯ рд╡рд░реНрдХрд┐рдВрдЧ рд╡реИрд░рд┐рдПрдмрд▓ рдорд┐рд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ тАФ рдпреЗ рд╡реИрд░рд┐рдПрдмрд▓ рдЕрднрд╛рдЬреНрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╡рд░реНрдЧрдореВрд▓ рдХреЗ рджрд╢рдорд▓рд╡ рднрд╛рдЧреЛрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рд╣рд░ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рдж рдпреЗ рдЖрда рд░рдЬрд┐рд╕реНрдЯрд░ рдЪрд▓рддреЗ-рдлрд┐рд░рддреЗ рд╣реИрд╢ рд╕реНрдЯреЗрдЯ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ; рдЗрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдЕрдВрддрд┐рдо 256-рдмрд┐рдЯ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг
рдЗрдирдкреБрдЯ abc (3 рдмрд╛рдЗрдЯ) рдХрд╛ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad рд╣реЛрддрд╛ рд╣реИред рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 рд╣реЛрддрд╛ рд╣реИ тАФ рдпрд╣ рдПрдХ рдорд╛рдирдХ рдЯреЗрд╕реНрдЯ рд╡реЗрдХреНрдЯрд░ рд╣реИред
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓
рдХреНрдпрд╛ SHA-256 рдХреЛ рдЙрд▓рдЯрд╛ (рд░рд┐рд╡рд░реНрд╕) рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдирд╣реАрдВред рдпрд╣ рдПрдХ рддрд░рдлрд╝рд╛ (рд╡рди-рд╡реЗ) рдлрд╝рдВрдХреНрд╢рди рд╣реИ; рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рд╕реЗ рдореВрд▓ рдЗрдирдкреБрдЯ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ред
рдореЗрд░реА рдмрд╛рдЗрдЯ рд╕рдВрдЦреНрдпрд╛ рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдЧреИрд░-ASCII рдЕрдХреНрд╖рд░ (рдПрдХреНрд╕реЗрдВрдЯ, рдЗрдореЛрдЬреА, рдЪреАрдиреА/рдЬрд╛рдкрд╛рдиреА/рдХреЛрд░рд┐рдпрд╛рдИ рд╡рд░реНрдг) UTF-8 рдореЗрдВ рдХрдИ рдмрд╛рдЗрдЯ рд▓реЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмрд╛рдЗрдЯ рд▓рдВрдмрд╛рдИ рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдХреНрдпрд╛ SHA-256 рдЖрдЬ рднреА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ? рд╣рд╛рдБред рдЖрдЬ рддрдХ SHA-256 рдХреЗ рдЦрд╝рд┐рд▓рд╛рдлрд╝ рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреЛрд▓рд┐рдЬрд╝рди рдпрд╛ рдкреНрд░реАрдЗрдореЗрдЬ рд╣рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдЖрдо рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИрд╢ рдмрдирд╛ рд╣реБрдЖ рд╣реИред