рддреЗрдЬ рдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдордбреА 5 рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд╡рд░рд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рд░рд┐рдХрд╡рд░реА

рд╕рдВрднрд╡рддрдГ рд╣рдо рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдХрд┐рд╕реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╛рдЗрдЯ рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рднреВрд▓ рдЧрдП, рдФрд░ рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдмрдЪреА рд╣реБрдИ рдХреБрдХреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╢рд╛рдпрдж рдпреЗ рдЖрдкрдХреЗ рдХреБрдХреАрдЬрд╝ рднреА рдирд╣реАрдВ рдереЗ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ - рдпрджрд┐ рдЖрдк рдЙрдЪреНрдЪ рдЧрддрд┐ рд╡рд╛рд▓реЗ рдЬрд╛рдирд╡рд░ рдмрд▓ рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХрдЯреМрддреА рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!



рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рддреНрд╡рд░рдг рддрдХрдиреАрдХ рдХрд┐рд╕реА рднреА рд╣реИрд╢рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг, рдореИрдВрдиреЗ md5 рдХреЛ рдЪреБрдирд╛ред



рд╢рд╛рдпрдж рдЬрд╛рдирд╡рд░ рдмрд▓ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди, рдлрд┐рд░ рднреА, рдпрд╣ рд╕рдмрд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рд▓рдВрдмрд╛ рднреАред



рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЧреНрд░рдВрдерд┐рдпреЛрдВ рдХреЛ рдЦрд░реАрджрдирд╛ рдФрд░ рдЙрди рдкрд░ рдмреНрд░реВрдЯрдлреЛрд░реНрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реА рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рджреВрд╕рд░реЗ - рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдзрд┐рдХрддрдо рдЙрдкрдпреЛрдЧ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛрд╣рд░реЗ рдХреЛрд░ 1.8 Ghz рдкреНрд░реЛрд╕реЗрд╕рд░, 2 рдЬреАрдмреА рд░реИрдо рдФрд░ рдПрдХ рдПрдирд╡реАрдбрд┐рдпрд╛ 9800 рдЬреАрдЯреА рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдорд╛рдирдХреЛрдВ рдкреНрд░рдгрд╛рд▓реА рдЗрдХрд╛рдИ рджреНрд╡рд╛рд░рд╛ рдХрдордЬреЛрд░ рд╣реИред рддреЛ, рдЪрд▓реЛ рдЗрд╕реЗ рд╕реЗ рд╕рднреА рд░рд╕ рдмрд╛рд╣рд░ рдирд┐рдЪреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ!



0. рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рдХрд▓реНрдк



рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдбрд╛рдВрддрд░рдХ рд╕рдВрднрд╡рддрдГ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЛрдб рдХреЛ рдкреЛрд░реНрдЯреЗрдмрд▓ рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЗ рдмрд╛рдж рд╕рдмрд╕реЗ рддреЗрдЬ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕реА рдХреЛ рдЪреБрдирд╛ред



1. рд╕реНрдкреАрдбрдЕрдк md5



Md5 рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддреБрд░рдВрдд рдЕрдкрдиреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреЛ 64 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЦреЛрдЬ 64 рд╡рд░реНрдгреЛрдВ рддрдХ рд╣реИ (рдФрд░ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, 59 рддрдХ, рдХреНрдпреЛрдВрдХрд┐ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╕реЗрд╡рд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ) рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рднреА рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рдЗрд╕рдореЗрдВ рджрд╕рд┐рдпреЛрдВ рд╕рд╛рд▓ рд▓рдЧрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ 64 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд░рдгреА рдХреЛ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рдкрд╛рд╕рд╡рд░реНрдб рд╡рд┐рдХрд▓реНрдк рд▓рд┐рдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╛рдкреНрдд рд╣реИрд╢ рдХреЗ рд╕рднреА 16 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореВрд▓ рд╣реИрд╢ рдХреЛ рддреБрд░рдВрдд 32-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдП, рдмреА, рд╕реА рдФрд░ рдбреА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧрдгрдирд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЪрд╛рд░ 32-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рд╕реЛрд▓рд╣ 8-рдмрд┐рдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛрдЧреАред



2. рдЗрд╖реНрдЯрддрдо рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ



рдкрд╣рд▓реЗ, рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдЬреАрд╕реАрд╕реА рд╕рдВрд╕реНрдХрд░рдг 4.4.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рдирд╡рд░ рдмрд▓ рдлрд╛рдЗрд▓рд░ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ:



~$ make PARAMS=""

~$ time ./brute 827ccb0eea8a706c4c34a16891f84e7b

...

real 0m22.164s

user 0m22.080s

sys 0m0.020s







12345 рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЦреЛрдЬ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╡рд░реНрдгрдорд╛рд▓рд╛ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛, рдкреВрдВрдЬреА рдФрд░ рдирд┐рдЪрд▓реЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдЕрдХреНрд╖рд░ рд╣реЛрддреЗ рд╣реИрдВ - рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред



рдЕрдЧрд▓рд╛, рдЭрдВрдбреЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ -O3 (рдЕрдзрд┐рдХрддрдо рдЕрдиреБрдХреВрд▓рди рд╕реНрддрд░) рдФрд░ -рд╕реНрдЯреИрдЯрд┐рдХ (рд╕реНрдереИрддрд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ, рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ:



~$ make PARAMS="-O3 -static"

~$ time ./brute 827ccb0eea8a706c4c34a16891f84e7b

...

real 0m6.422s

user 0m6.370s

sys 0m0.020s







рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рддреНрд╡рд░рдг рдорд┐рд▓рддрд╛ рд╣реИ ~ ~ 3.5 рдЧреБрдирд╛!



рдЪреВрдВрдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рджреЛ рдХреЛрд░ рд╣реИрдВ, рд╣рдо рдПрдХ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХреЛ рджреЛ рдереНрд░реЗрдб рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ:



~$ make PARAMS="-O3 -static -DTHREADS=2"

~$ time ./brute 827ccb0eea8a706c4c34a16891f84e7b

...

real 0m3.763s

user 0m6.530s

sys 0m0.020s







рд╣рдореЗрдВ рдПрдХ рдФрд░ ~ 2 рдмрд╛рд░ рддреНрд╡рд░рдг рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд╣реИред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЗрдВрдЯреЗрд▓ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд░реВрдЯ-рдлреЙрд░реЗрд╕рд░ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рднреА рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХреЛрдб рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИ (рдмрд╢рд░реНрддреЗ рдХрд┐ рдХреЛрдб рдЗрдВрдЯреЗрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рд╣реБрдИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рдорд╛рдк рдирд╣реАрдВ рджреВрдВрдЧрд╛ред ред



3. GPU рд╕рдХреНрд╖рдо рдХрд░реЗрдВ



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ (рдпрд╛ рдмрд▓реНрдХрд┐, 112 рдЫреЛрдЯреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ) рдЬреЛ рдмреЗрдХрд╛рд░ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ? GPU рдкрд░ рдЧрдгрдирд╛ рдХреЗ рд╕рдВрдЧрдарди рдХреЗ рд▓рд┐рдП, рджреЛ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ: CUDA рдФрд░ BrookGPU , рдХреНрд░рдорд╢рдГ NVIDIA рдФрд░ AMD рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдПред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ NVIDIA рд╕реЗ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо GPU рдкрд░ md5 рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CUDA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред



рдпрд╣рд╛рдВ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ GPU рдХреЗ рддрд╣рдд, рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд▓реВрдк рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдЬреЛ рд╕рднреА рд╕рдВрднрд╡ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХрд╛ рдЕрдкрдирд╛ рд╕рдордпрдмрд╛рд╣реНрдп рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдереНрд░реЗрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд╕реАрдкреАрдпреВ рдореЗрдВ рдореБрдЦреНрдп рд▓реВрдк рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬреАрдкреАрдпреВ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЧрдгрдирд╛ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬреАрдкреАрдпреВ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╣реИрд╢ рдкреНрд░рддрд┐ рд╕реНрдЯреНрд░реАрдо рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореВрд▓ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВред

рдЪрд▓реЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдпрд╣ рдХреЛрд╢рд┐рд╢:



~$ make PARAMS="-O3 -static -DTHREADS=2 -DUSEGPU"

~$ time ./brute 827ccb0eea8a706c4c34a16891f84e7b

...

real 0m1.967s

user 0m3.933s

sys 0m0.120s







CPU + GPU рдХреЗ рд╕рдВрдпреБрдХреНрдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдФрд░ ~ 2 рдмрд╛рд░ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛! рдпреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдЕрдЪреНрдЫреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдзреИрд░реНрдп рд╣реИ, рддреЛ 9 рдпрд╛ рдЕрдзрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реЗ рдкрд╛рд╕рд╡рд░реНрдб рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд░реНрдгрдорд╛рд▓рд╛ рдореЗрдВ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред



рдкреБрдирд╢реНрдЪ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрдд git рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: git clone git://github.com/VladX/md5-bruteforcer.git






All Articles