
рдпрджрд┐ рдЖрдк рдХрднреА рдЪрд┐рдВрддрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╡реЗрдм (рдкрд╛рд╕рд╡рд░реНрдб, рдкрддреЗ, рдмреИрдардХ рд╕реНрдерд╛рдиреЛрдВ) рдкрд░ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдФрд░ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдмрд╕ рд╡реЗрдм рдкрд░ рдирд┐рд╢рд╛рди рдЫреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ
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", ")
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
UPD: рдЪреВрдБрдХрд┐ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╢реНрди рдкреВрдЫреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреИрд╕реЗ "рдЖрдк рдЗрд╕ рд╕реЗрд╡рд╛ рдкрд░ рдХреИрд╕реЗ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ", рдореИрдВ рдЗрд╕рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реВрдВ:
рдореБрдЭреЗ рдЖрдк рдкрд░ рднрд░реЛрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рдВрдд рд▓реЛрдЧ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ, рддреЛ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдпрд╛ рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдХ рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬрд╝ ("рдЧреЛрдкрдиреАрдпрддрд╛ рд╡рд┐рдХрд▓реНрдк" рдХреЗ рддрд╣рдд рдЙрдкрд▓рдмреНрдз) рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреБрдкреНрдд рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬрд╝ (рдХреЗрд╡рд▓ рдПрдХ bcrypted рд╣реИрд╢) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрднреА рднреА рдпрд╣ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд╣рд╕реНрдп рдХреНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рддреБрдо рдкрд░ рднрд░реЛрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рд╣рдо рд╢рд╛рдВрдд рд▓реЛрдЧ рд╣реИрдВ, рд╣рдо рдЕрднреА рднреА рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╣ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ, рддреЛ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрд╕ рд╕рд╛рдЗрдЯ / рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рд╡рд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдЖрдк рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдЖрдкрдХрд╛ рд░рд╣рд╕реНрдп рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЖрдкрдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ рдЙрдирд╕реЗ bcrypt hashes), рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдкрдХреЗ рд░рд╣рд╕реНрдп рдХреЛ рдХрднреА рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред