рд╡рди рдЯрд╛рдЗрдо рд╕реАрдХреНрд░реЗрдЯ - рд░реАрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдмрд░реНрди


рдпрджрд┐ рдЖрдк рдХрднреА рдЪрд┐рдВрддрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╡реЗрдм (рдкрд╛рд╕рд╡рд░реНрдб, рдкрддреЗ, рдмреИрдардХ рд╕реНрдерд╛рдиреЛрдВ) рдкрд░ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдФрд░ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдмрд╕ рд╡реЗрдм рдкрд░ рдирд┐рд╢рд╛рди рдЫреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ http: //onetimesecret.com рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдпрд╣ рд╕реЗрд╡рд╛ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ "рд░рд╣рд╕реНрдп" рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ - рдПрдХ рдЧреБрдкреНрдд рднреЗрдЬрдиреЗ рд╕реЗ, рдЖрдкрдХреЛ рдЙрд╕ рдкрд░ рдПрдХ-рдмрд╛рд░ рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд░рд╣рд╕реНрдп рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рд╕реЗрд╡рд╛, рдХреЗрд╡рд▓ рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЧреБрдкреНрдд рдХреА рд░рдХреНрд╖рд╛ рднреА рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдИ-рдореЗрд▓ рдкрддреЗ рдкрд░ рдПрдХ рд▓рд┐рдВрдХ рднреЗрдЬ рд╕рдХрддреА рд╣реИред
рдЖрдк рдЧреБрдкреНрдд рдХреЗ рдЖрддреНрдо-рд╡рд┐рдирд╛рд╢ рдХреЗ рд▓рд┐рдП рд╢рдмреНрдж 5 рдорд┐рдирдЯ рд╕реЗ рд▓реЗрдХрд░ 30 рджрд┐рдиреЛрдВ рддрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

"рдЧреБрдкреНрдд" рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рджреЛ рд▓рд┐рдВрдХ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдПрдХ рддрд░рд╣ рдХрд╛ onetimesecret.com/secret/SECRET_KEY onetimesecret.com/secret/SECRET_KEY , рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд░рд╣рд╕реНрдп рд╕реНрд╡рдпрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛, рдФрд░ рдлрд╝реЙрд░реНрдо рдХрд╛ onetimesecret.com/private/META_KEY onetimesecret.com/private/META_KEY , рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдЖрдкрдХрд╛ "рдЧреБрдкреНрдд" рдкрд╣рд▓реЗ рд╕реЗ "рдкреНрд░рдХрдЯ" рд╣реЛ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдЖрддреНрдо-рд╡рд┐рдирд╛рд╢ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рддрдирд╛ рд╕рдордп рдмрдЪрд╛ рд╣реИред

рдЦреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ:

рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж:


рдФрд░ рдЕрдВрдд рдореЗрдВ, Habr рдХреЗ рд▓рд┐рдП рд╡рд╛рджрд╛ рдмреЛрдирд╕ :)

рд╡рди рдЯрд╛рдЗрдо рд╕реАрдХреНрд░реЗрдЯ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред
рдкрд░реНрд▓, рдкреАрдПрдЪрдкреА, рд░реВрдмреА рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд░реИрдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВред
рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдЖрд╡рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ:
git: github.com/utter-step/py_onetimesecret

рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
 from onetimesecret import OneTimeSecret o = OneTimeSecret("YOUR_EMAIL", "YOUR_OTS_APIKEY") secret = o.share(u", ") # {u'updated': 1340611352, # u'created': 1340611352, # u'recipient': [], # u'metadata_key': u'653lzljgwgj74ys6hvrpta2wmhaamrg', ###   (/, ,    ..). #       https://onetimesecret.com/private/META_KEY # u'metadata_ttl': 86400, # u'secret_ttl': 86400, # u'state': u'new', # u'passphrase_required': False, # u'ttl': 86400, # u'secret_key': u'3ery270erhtk1gjsti90d70z5h8aqgd', ###  ,    #    https://onetimesecret.com/secret/SECRET_KEY # # u'custid': u'anon'} print o.retrieve_secret(secret[u"secret_key"]) # {u'secret_key': u'dtr7ixukiolpx1i4i87kahmhyoy2q65', # u'value': u', '} print o.retrieve_meta(secret["metadata_key"]) # {u'received': 1340731164, # u'updated': 1340731164, # u'created': 1340731159, # u'recipient': [], # u'metadata_key': u'qvu20axsugif3fo4zjas5ujvp1q9k75', # u'metadata_ttl': 86398, # u'state': u'received', ###    # u'ttl': 86400, # u'custid': u'anon'} 


рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

UPD: рдЪреВрдБрдХрд┐ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╢реНрди рдкреВрдЫреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреИрд╕реЗ "рдЖрдк рдЗрд╕ рд╕реЗрд╡рд╛ рдкрд░ рдХреИрд╕реЗ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ", рдореИрдВ рдЗрд╕рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реВрдВ:

рдореБрдЭреЗ рдЖрдк рдкрд░ рднрд░реЛрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рдВрдд рд▓реЛрдЧ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ, рддреЛ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдпрд╛ рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬрд╝ ("рдЧреЛрдкрдиреАрдпрддрд╛ рд╡рд┐рдХрд▓реНрдк" рдХреЗ рддрд╣рдд рдЙрдкрд▓рдмреНрдз) рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреБрдкреНрдд рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬрд╝ (рдХреЗрд╡рд▓ рдПрдХ bcrypted рд╣реИрд╢) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрднреА рднреА рдпрд╣ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд╣рд╕реНрдп рдХреНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдореИрдВ рддреБрдо рдкрд░ рднрд░реЛрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рд╣рдо рд╢рд╛рдВрдд рд▓реЛрдЧ рд╣реИрдВ, рд╣рдо рдЕрднреА рднреА рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╣ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ, рддреЛ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрд╕ рд╕рд╛рдЗрдЯ / рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рд╡рд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдЖрдк рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдЖрдкрдХрд╛ рд░рд╣рд╕реНрдп рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЖрдкрдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ рдЙрдирд╕реЗ bcrypt hashes), рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдкрдХреЗ рд░рд╣рд╕реНрдп рдХреЛ рдХрднреА рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

Source: https://habr.com/ru/post/In146588/


All Articles