рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдЬрдХреЙрдм рдЬреЗрдирдХреЛрд╡ рджреНрд╡рд╛рд░рд╛ рддреАрд╕рд░реЗ рд▓реЗрдЦ "рдЬрд╛рд╡рд╛ рдореИрд╕реЗрдЬрдбрд┐рдЬреЗрд╕реНрдЯ" рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рд╢реБрд░реБрдЖрддреА рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛:
- рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА
- рд╕рд┐рдлрд╝рд░
- MessageDigest
- рдореИрдХ
- рд╣рд╕реНрддрд╛рдХреНрд╖рд░
- keypair
- Keygenerator
- KeyPairGenerator
- KeyStore
- keytool
- рдкреНрд░рдорд╛рдгрдкрддреНрд░
- CertificateFactory
- CertPath
Java MessageDigest
Java рдХреНрд▓рд╛рд╕ MessageDigest рдПрдХ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдХреЛ рдкрдЪрд╛рдиреЗ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЖрдк рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд╣рди рдХреЗ рджреМрд░рд╛рди рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд░рд┐рд╡рд╣рди рдХреЗ рджреМрд░рд╛рди рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкреНрд░реЗрд╖рдХ рдХреЛ рдбреЗрдЯрд╛ рд╕реЗ рд╕рдВрджреЗрд╢ рдХреЛ рдкрдЪрд╛рдиреЗ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реА рддрд░рдл, рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдкрдЪрд╛рдирд╛, рдбреЗрдЯрд╛ рд╕реЗ рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рджреЛ рд╕рдВрджреЗрд╢ рдкрдЪрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд╣рди рдХреЗ рджреМрд░рд╛рди рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рдерд╛ред
рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рдкрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╢рд░реНрддреЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдЯреАрдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдПрдХ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрд╕реЗрдЬрдбрд┐рдЬреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
MessageDigest рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛
MessageDigest рд╡рд░реНрдЧ рдХреЛ рддреБрд░рдВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрд╕реЗрдЬрдбрд┐рдЬреЗрд╕реНрдЯ рд╡рд░реНрдЧ рдХреА рд╕реНрдерд┐рд░ getInstance () рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ MessageDigest рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
GetInstance () рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рджрдо
рдЬрд╛рд╡рд╛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдПрдкреАрдЖрдИ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдмрд╛рд╣рд░реА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдкреНрд░рджрд╛рддрд╛ рдЕрдзрд┐рдХ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):
- MD2
- MD5
- SHA-1
- SHA-256
- SHA-384
- SHA-512
рдпреЗ рд╕рднреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рдХреЛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП SHA-256 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдЧрдгрдирд╛
MessageDigest рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдХрд░, рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд╣реИ, рддреЛ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдПрдХ рдПрдХрд▓ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкрдЪрд╛ рдЧрдгрдирд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
byte[] data1 = "0123456789".getBytes("UTF-8"); MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); byte[] digest = messageDigest.digest(data1);
рдпрджрд┐ рдПрдХ рд╣реА рд╕рдВрджреЗрд╢ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдореЗрдВ рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдбреЗрдЯ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдХреЙрд▓ рдХреЛ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ () рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд╕реЗ рдПрдХ рдореИрд╕реЗрдЬ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреИрд▓рдХреБрд▓реЗрд╢рди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
byte[] data1 = "0123456789".getBytes("UTF-8"); byte[] data2 = "abcdefghijklmnopqrstuvxyz".getBytes("UTF-8"); MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); messageDigest.update(data1); messageDigest.update(data2); byte[] digest = messageDigest.digest();