рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдпрд╣рд╛рдВ "AtContent.com рд╕реЗрд╡рд╛ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛" рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдВрддрд┐рдо рд▓реЗрдЦ рд╣реИред рдпрд╣рд╛рдБ Azure Table Storage рдФрд░ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╣реИрдВред рдпрд╣ рд▓реЗрдЦ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдмреЗрд╣рддрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдбреЗрдЯрд╛ рд╕рд╛рдЭрд╛рдХрд░рдг рдкрд░ рдмрд╣реБрдд рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдПрдЬрд╝реНрдпреЛрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдЯреЗрдмрд▓ рд╣реИ, рдЬреЛ рдЕрд╕реАрдорд┐рдд рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдиреЛрдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рд▓реЗрдХрд┐рди рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдФрд░ рдкрд░рд┐рдЪрд┐рдд SQL рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдХрд╛рдлреА рдмрд╛рд░, рдПрдЬрд╝реНрдпреЛрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдПрдЬрд╝реНрдпреЛрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдПрдЬрд╝реНрдпреЛрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдЯреЗрдмрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрднреНрдпрд╛рд╕ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдорд┐рд▓реЗрдВрдЧреЗред
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ Azure Table Storage рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдПрдЬрд╝реНрдпреЛрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдЯреЗрдмрд▓реНрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рд╕реВрдЪрд┐рдпрд╛рдБ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдЖрдЬ рддрдХ рд╣реИрдВред
рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдорд╛рди 1000 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдЪреБрдиреЗ рдЧрдП рд╣реИрдВ;
- рд╡рд┐рднрд╛рдЬрди рдХреБрдВрдЬреА рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рднрд╛рдЬрди (PartitionKey) рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ;
- рдЬрдм рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реАрдорд╛ рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдерд┐рддрд┐ "рдХрдо рд╕реЗ рдХрдо рдпрд╛ рдмрд░рд╛рдмрд░" рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддреА рд╣реИ;
рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдирдореВрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЯреЗрдмрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдФрд░ рдПрдХ рдирд┐рд░рдВрддрд░ рдЯреЛрдХрди рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм 1000 рд╕реЗ рдЕрдзрд┐рдХ рд░рд┐рдХреЙрд░реНрдб рд╣реЛрддреЗ рд╣реИрдВред рдПрд╕рдбреАрдХреЗ рдореЗрдВ рдПрдХ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдХреЗрд╡рд▓ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдирджреЗрди рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирдореВрдиреЗ рдореЗрдВ 2001 рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рддреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 3 рдПрдХреНрд╕реЗрд╕ рд╣реЛрдВрдЧреЗред
рдЖрдкрдХреЛ PartitionKey рднреА рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреБрдВрдЬреА рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрднрд╛рдЧ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдЖрдкрдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдЬреЛрдбрд╝реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдЯреЛрд░ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рдПрдЧреАред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХрдо рд╕реЗ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛ рд╣рд╛рд▓рдд рджреНрд╡рд╛рд░рд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рд╣реИред рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рддреМрд░ рдкрд░ рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рд░реЛрд╡реЗ рдХреЗ рд▓рд┐рдП "рдХрдо" рдпрд╛ "рдЗрд╕рд╕реЗ рдХрдо рдпрд╛ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░" рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪрдпрдирд┐рдд рдорд╛рди рдиреНрдпреВрдирддрдо рд╕реЗ рдЙрд╕ рддрдХ рдЬрд╛рдПрдВрдЧреЗ рдЬреЛ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реМрдЯрд╛рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдХреНрд░рдо рдЫреЛрдЯреЗ рд╕реЗ рдмрдбрд╝реЗ рддрдХ рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 10,000 рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ рдЬреЛ рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ 100 рд░рд┐рдХреЙрд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд░реЛрд╡реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рд╕реЗ рдХрдо рд╣реИ, рддреЛ рд╕реНрдЯреЛрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд░рд╛рдЙрдХреЗрдп рдорд╛рди рд╕реЗ 100 рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛ред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рддрд╛рд░реАрдЦ рд╕реЗ рдХреБрдВрдЬреА рд░реЛрд╡реЗ рдХреЗ рд╕рд╛рде рдХрдИ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВред рдФрд░ рд╣рдореЗрдВ 2 рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП RowKey 20120801221700 рд╕реЗ рдХрдо рд╣реИред рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдЯреЛрд░ "20120801221110" рдФрд░ "20120801201728" рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдСрд░реНрдбрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕реНрдЯреЛрд░ "20120801171004" рдФрд░ "20120801181514" рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдЖрдк рдПрдХ рдЙрд▓рдЯрд╛ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рджреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ, рддрд╛рд░реАрдЦ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ DateTime.MaxValue - CurrentDateTime рд╣реИред рдлрд┐рд░, рдЬрдм рдирдореВрдирд╛ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдкрд░реАрдд рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рд╡рд┐рднрд╛рдЬрди рдХреБрдВрдЬреА рдЪрдпрди рдЕрднреНрдпрд╛рд╕
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЙрди рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ Microsoft рд╕рдВрдЧреНрд░рд╣рдг рддрд╛рд▓рд┐рдХрд╛ (
http://msdn.microsoft.com/en-us/library/windowsazure/hh508997.aspx ) рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рджреЗрддрд╛ рд╣реИред рдЗрди рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХрд╛ рдЕрд░реНрде рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдбрд┐рдЬрд╝рд╛рдЗрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрд╛рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рди рд╣реЛрдВ, рдФрд░ рдмрд╣реБрдд рдХрдо рдирд╣реАрдВ, рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬрд┐рдпрд╛рдБред рдФрд░ рдпрд╣ рднреА, рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рди рд╣реЛрдВред рдпрд╣ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрджрд┐ рд╡рд┐рднрд╛рдЬрди рдкрд░ рд▓реЛрдб рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рддреЛ рдЕрдзрд┐рдХ рд▓реЛрдб рдХреЗ рд╕рд╛рде рдлрд┐рдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдХрдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рднрд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдЯреЛрд░реЗрдЬ рдЯреЗрдмрд▓реНрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рднрд╛рд░реА рд▓реЛрдб рдХреЗ рддрд╣рдд рд╡рд┐рднрд╛рдЬрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдЖрдХрд╛рд░ рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛, рдЙрддрдиреА рд╣реА рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╣реЛрдЧреАред
рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рд╣рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЪрдпрди рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рдИрдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдПрдордбреА 5 рд╣реИрд╢ рдФрд░ рд╡рд┐рднрд╛рдЬрди рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рд╕реЗ рдмрд┐рдЯреНрд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдмрд╛рдж рдореЗрдВ рдЖрд╡рдВрдЯрди рджреЗрддрд╛ рд╣реИред
рдпрд╣ рд╕рд░рд▓ рдХреЛрдб рдЖрдкрдХреЛ рдПрдордбреА 5 рд╣реИрд╢ рд╕реЗ рдмрд┐рдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрднрд╛рдЧ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛:
using System.Security.Cryptography; using System.Text; public static string GetHashMD5Binary(string Input, int BitCount = 128) { if (Input == null) return null; byte[] MD5Bytes = MD5.Create().ComputeHash( Encoding.Default.GetBytes(Input)); int Len = MD5Bytes.Length; string Result = ""; int HasBits = 0; for (int i = 0; i < Len; i++) { Result += Convert.ToString(MD5Bytes[i], 2).PadLeft(8, '0'); HasBits += 8; if (HasBits >= BitCount) break; } if (BitCount < 1 || BitCount >= 128) return Result; return Result.Substring(0, BitCount); }
рдпрд╣ рд╡рд┐рдзрд┐, рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣, CPlaseEngine рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдПрдХ рд▓рд┐рдВрдХ рдЬреЛ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдЗрд╕ рдЕрднреНрдпрд╛рд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рдиреЗ рдЦреБрдж рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдкрдХреНрд╖ рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд▓рд╛рднрджрд╛рдпрдХ рд╣реИред рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реАрдЬрд╝ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреНрд╡реЗрд░реА рдЗрд╕ рдорд╛рдпрдиреЗ рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ред
рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рдмрд┐рдпрд╛рдБ рдЪреБрдирдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдХреНрд╕рд░ рд▓реЗрдЦрди рдХреА рдХреБрдВрдЬреА рдХреБрдЫ рддрд╛рд░реАрдЦ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдХреНрд╕рд░ рдирд┐рд░реНрдорд╛рдг рдХреА рддрд╛рд░реАрдЦред рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдЖрдо рд╣реИред рдФрд░ рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рддрд╛рд░реАрдЦ рд╕реЗ рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд░рд┐рдХреЙрд░реНрдб рдХреБрдВрдЬреА рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдЬреЛрдбрд╝реА "рд╡рд┐рднрд╛рдЬрди рдХреБрдВрдЬреА" - "рд░рд┐рдХреЙрд░реНрдб рдХреБрдВрдЬреА" рдХреЗ рд▓рд┐рдП рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдПрдХ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд░реНрдг рдЬреЛрдбрд╝рдирд╛ рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЪреБрдирдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд░рд┐рдХреЙрд░реНрдб рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрд╢рдВрд╕рд╛ рдЗрд╕реЗ рдЙрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╕реВрдЪреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рджрд┐рдирд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреБрдВрдЬреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рддрд┐рдерд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред
рд╡рд┐рддрд░рдг рдФрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг
рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд╣реИрд╢ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рди рдХреЗрд╡рд▓ рдЯреЗрдмрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлреИрд▓реА рд╣реБрдИ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрдЧреНрд░рд╣рдг рд╕реЗ рдХреИрд╢ рддрдХ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдлрд╝рд╛рдЗрд▓ рдкрде рд╕реЗ рд╣реИрд╢ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдбреЗрдЯрд╛ рд╕рд╛рдЭрд╛рдХрд░рдг рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрддрдиреЗ рд╣реА рдХреБрд╢рд▓ рд╕рд┐рд╕реНрдЯрдо рдкреВрд░реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдПрдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп, рд╕реНрдХреЗрд▓реЗрдмрд▓, рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдРрд╕реА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдВрддрд░рд┐рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдпрд╣ рднреА рдЦреБрд╢реА рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реА рдУрдкрдирд╕реЛрд░реНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ CPlaseEngine рдХреЛрдбрдкреНрд▓реЗрдХреНрд╕ рдкрд░ рдЦреБрд▓реА рдкрд╣реБрдВрдЪ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА рд╣реИред рдЗрд╕рдореЗрдВ рдРрд╕реЗ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдПрдЬрд╝реНрдпреЛрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╕реЗрд╡рд╛рдПрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред рдЖрдк рдЗрд╕реЗ
https://cplaseengine.codeplex.com/ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрдврд╝реЗрдВ: