рдпрд╣ рдЕрдкрдиреЗ рд╕реЗрд▓ рдлреЛрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд░реНрд╡рд░ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб decrypting рджреНрд╡рд╛рд░рд╛ рдПрдХ app рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд┐рд╕реА рднреА рд╡реЗрдм рд╕реЗрд╡рд╛ рд╣реИ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред
(рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП GitHub рдкрд░ рдирдЬрд░ рд░рдЦрдиреЗ рджреЗрдЦреЛ рдХреИрд╕реЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдЗрд╕ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░)
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рднрд░реЛрд╕рд╛ рджрд▓реЛрдВ рдХреА рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╕рднреА рджрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджрд╛рдЦрд┐рд▓рд╛ рд▓рд┐рдпрд╛ рд╣реИ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рдЙрдкрдХрд░рдг-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреБрдВрдЬреАрдпреБрдЧреНрдо рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреВрд░реЗ рдЬреАрд╡рди рднрд░ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ (рдЗрд╕рдХреЗ рд░рджреНрдж рд╣реЛрдиреЗ рддрдХ) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдВрдЬреА рдорд┐рдЯрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
Github рдЯреНрд░реИрдХрд░: https://github.com/sebastiannielsen/QRSA
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ:
1. рдлреЛрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЖрдзрд╛рд░рд┐рдд рднрдВрдбрд╛рд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рднрдВрдбрд╛рд░рдг рдПрдХ "рд╕реБрд░рдХреНрд╖рд╛ рдЪрд┐рдк" рдлреЛрди рдХреЗ рдЕрдВрджрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдлреЛрди рдмрдВрдж рдХрд░ рдЪрд╛рдмреА рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрднрд╡ рдмрдирд╛ рд░рд╣реА рд╣реИред
2. рджреБрдХрд╛рди рдкреНрд░рд╛рд░рдВрдн рдХреА рдЬрд╛ рдЪрд╛рд╣рд┐рдПред рдХрднреА рдХрднреА рдПрдХ рдкрд┐рди рд▓реЙрдХ рд╕реНрдХреНрд░реАрди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдХреЗ рджреБрдХрд╛рди рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рд┐рд░реНрдл рдПрдХ рдХреБрдВрдЬреА рдкреИрджрд╛ рд╣реЛрддрд╛ рд╣реИред рд▓реЙрдХ рд╕реНрдХреНрд░реАрди рдХреЛ рд╣рдЯрд╛рдиреЗ рдЖрдорддреМрд░ рдкрд░ рдХреБрдВрдЬреА рд░рдЦреЗрдВрдЧреЗ, рдЬрдм рддрдХ рдХреБрдВрдЬреА рдЧреБрдг рд▓реЙрдХ рд╕реНрдХреНрд░реАрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ред
3. рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓реЙрдХ рд╕реНрдХреНрд░реАрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдлреЛрди рдореЙрдбрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред
4. рдлреЛрди рдХреЗ рдЕрдВрджрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдЪрд┐рдк, рдкрд░ 2048 рдмрд┐рдЯ рдЖрд░рдПрд╕рдП / рдИрд╕реАрдмреА / PKCS1.5 рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
5. рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рдирд┐рд╣рд┐рдд рдлреЛрди рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рдЪрд┐рдк рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред
// рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдИ: рджрд╛рдЦрд┐рд▓рд╛ рд▓рд┐рдпрд╛, рдЖрдк URL qrsa рд▓рд╛рдВрдЪ рдЪрд╛рд╣рд┐рдПред рддреБрдо рднреА рдПрдХ рдХреЙрд▓рдмреИрдХ рдпреВрдЖрд░рдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднрд░реНрддреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, qrsa рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ: // uред рдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдПрдХ 'рдПрд╕' рдкреАрдЫреЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЖрдк HTTPS, рдпрд╛ HTTP рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рддрдм рдкреВрд░реЗ рдпреВрдЖрд░рдПрд▓, рдХрд╣рд╛ рдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдмрд┐рдирд╛, URLSafe Base64 рдкреНрд░рд╛рд░реВрдк рдореЗрдВред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА URL рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рд╡рд╛рдЗрд╕ рдЕрд╕рдВрдЧрдд рд╣реИ, рддреЛ рдпрд╣ INCOMPATIBLE_DEVICE рдФрд░ рдЕрдкрдиреА рдЕрдкрдиреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд▓реМрдЯрдиреЗ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрдердХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ред
рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк URL qrsa рд▓рд╛рдВрдЪ: // рдпрд╛ qrsa: // рд╕реА рдкреНрд░рд╛рд░реВрдк рдЧрджреНрджреА :: :: рдУрдЯреАрдкреА рд╕рдВрджреЗрд╢ :: :: рд╣реИрд╢ рдЧрджреНрджреА рдореЗрдВ рдЖрд░рдПрд╕рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдкрд╛рда рдХреЗ URLSafe Base64 рдЗрдирдХреЛрдбрд┐рдВрдЧ рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдкреАрдЫрд╛ рдХрд┐рдпрд╛ред "рдПрд╕" рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реНрдХреИрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдУрдЯреАрдкреА рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред "рд╕реА" рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ рдУрдЯреАрдкреА рдХреЛрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдореЗрдВ рдмрдЬрд╛рдп рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рддреБрд░рдВрдд рдУрдЯреАрдкреА рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдЪрд┐рдкрдХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣реИрд╢ рдУрдЯреАрдкреА + рд╕рдВрджреЗрд╢ + рдУрдЯреАрдкреА, рдЬрд╣рд╛рдВ + рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдбрд╝реА рдЕрд░реНрде рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдПрдордбреА 5 рдмрдирд╛рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╣реИрд╢ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдкрд╛рда рдкрд░ рдмрдврд╝рдиреЗ рдХреА рдпреЛрдЧреНрдпрддрд╛ рдХреЗ рд╣рдорд▓реЛрдВ рдХреЗ рдХреБрдЫ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдкреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред sandwiched рдирд┐рд░реНрдорд╛рдг рдУрдЯреАрдкреА рдФрд░ рд╕рдВрджреЗрд╢ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрдХ рдмрдврд╝рдиреЗ рд╕реЗ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреЗ рдПрдХ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рд╣реИ рдХрд┐ рдлреЛрди рдХрд░рдиреЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ, рдЯреНрд░реЗрдбрдорд╛рд░реНрдХ рдФрд░ / рдпрд╛ рдХреЙрдкреАрд░рд╛рдЗрдЯ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди (рдПрдВрдбреНрд░реЙрдпрдб рдФрд░ рдЕрдиреНрдп рдХреНрд╖реБрдзрд╛ рдХреА рдпреВрдЖрдИ рдХреЙрдкреАрд░рд╛рдЗрдЯ рдХреА рд░рдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдВрд╕рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдПред
рдЕрдЧрд░ рд╡рд╣рд╛рдБ app рдкрд░ рдХрд┐рд╕реА рднреА рдореБрджреНрджреЗ рд╣реИ, рддреЛ рдЖрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдореБрдХреНрдд рд╕реНрд░реЛрдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рдХреЛрдб рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ GitHub рдкреГрд╖реНрда рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ GitHub рдкрд░ рдирдЬрд░ рд░рдЦрдиреЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдореБрджреНрджреЗ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдХреА рддрд╛рд░реАрдЦ
1 рдЕрдЧре░ 2016