Rob બોડેન: હું રોબ છું, અને માતાનો ક્રેકીંગ મળી દો. તેથી pset ઉલ્લેખનું થી યાદ છે કે અમે વાપરવાની જરૂર કરવા જઈ રહ્યાં છો ક્રિપ્ટ કાર્ય. માણસ પાનું માટે, અમે બે હેશ _xopensource વ્યાખ્યાયિત કરે છે. શા માટે ચિંતા કરશો નહીં અમે તે શું કરવાની જરૂર છે. અને પણ હેશ unistd.h સમાવેશ થાય છે. તેથી એક વખત તે પ્રકારે બહાર છે, લેટ્સ વાસ્તવિક કાર્યક્રમ મેળવવા માટે. અમે શું કરવાની જરૂર પ્રથમ વસ્તુ તેની ખાતરી છે જ્યારે વપરાશકર્તા માન્ય એનક્રિપ્ટ થયેલ દાખલ આદેશ વાક્ય પર પાસવર્ડ. કાર્યક્રમ માનવામાં આવે છે કે યાદ રાખો કોઈ સ્લેશ ક્રેક જેવી સ્કોર, અને પછી એનક્રિપ્ટ થયેલ શબ્દમાળાને. તેથી અહીં અમે તેની ખાતરી કરવા માટે ચકાસણી કરી રહ્યા છીએ કે બે argc અમે માંગો, તો પ્રોગ્રામ સાથે ચાલુ રાખો. Argc બે ન હોય તો, તે ક્યાં તો એનો અર્થ એ થાય વપરાશકર્તા એ એનક્રિપ્ટ થયેલ દાખલ કર્યું નથી આદેશ વાક્ય પર પાસવર્ડ, અથવા તેઓ ફક્ત એન્ક્રિપ્ટેડ કરતાં વધુ દાખલ આદેશ વાક્ય પર પાસવર્ડ, જેમાં કેસ અમે સાથે શું કરવું તે ખબર નથી આદેશ વાક્ય દલીલો. Argc બે હતી તેથી, જો અમે ચાલુ કરી શકો છો. અને અહીં, અમે જાહેર કરવા જઈ રહ્યાં છો એક ચલ એન્ક્રિપ્ટેડ. માત્ર ઉપનામ મૂળ રહ્યું argv1 જેથી આ સમગ્ર કાર્યક્રમ, અમે તેને argv1 કૉલ કરવાની જરૂર નથી પછી જે તમને લાગે છે કે ખરેખર અર્થ શું. તેથી છેવટે, અમે તે માન્ય કરવા માંગો છો એનક્રિપ્ટ થયેલ પાસવર્ડ વપરાશકર્તા દાખલ વાસ્તવમાં આવી હોઈ શકે છે એનક્રિપ્ટ થયેલ પાસવર્ડ. ક્રિપ્ટ મેન ઓફ પાનું, આ દીઠ એનક્રિપ્ટ થયેલ પાસવર્ડ 13 જ હોવી જોઈએ લાંબા અક્ષરો. ઉપર અહીં, આપણે હેશ વ્યાખ્યાયિત કે નોટિસ 13 રન એન્ક્રિપ્ટ. તેથી આપણે ફક્ત ખાતરી કરો કે કરી રહ્યા છીએ એનક્રિપ્ટ થયેલ ઓફ શબ્દમાળા લંબાઈ પાસવર્ડ 13 છે. તે નથી, તો અમે માંગો છો કાર્યક્રમ બહાર નીકળવા માટે. તેથી એક વખત કે અમે માર્ગ કરી શકો છો બહાર છે હવે ખરેખર શોધવા માટે પ્રયાસ શું એનક્રિપ્ટ થયેલ આપ્યો કે પાસવર્ડ પાસવર્ડ હતી. અહીં, અમે મીઠું પડાવી લેવું કરવા માંગો છો એનક્રિપ્ટ થયેલ પાસવર્ડ છે. , માણસ પાનું દીઠ યાદ રાખો, કે એનક્રિપ્ટ થયેલ પ્રથમ બે અક્ષરો સ્ટ્રિંગ, અહીં ગમે - 50ZPJ અને તેથી પર - પ્રથમ બે અક્ષરો આપી અમને ઉપયોગ કરવામાં આવ્યો હતો કે મીઠું ભોંયરામાં કાર્ય છે. અને અહીં, અમે મીઠું હેક્ટર હતું કે જુઓ. તેથી અમે પ્રથમ બે નકલ કરવા માંગો છો અક્ષરો, મીઠું રન હેશ છે બે તરીકે વ્યાખ્યાયિત. અમે પ્રથમ બે અક્ષરો નકલ હોય છે આ એરે માં, મીઠું. અમે વત્તા મીઠું લંબાઈ જરૂર છે કે નોટિસ અમે હજુ પણ નલ જરૂર થી એક, અમારા મીઠું ઓવરને અંતે ટર્મીનેટર. પછી અમે આ એરે જાહેર કરવા જઈ રહ્યાં છો કદ મહત્તમ લંબાઈ મહેમાન, વત્તા મહત્તમ લંબાઈ વ્યાખ્યાયિત હેશ છે એક, આઠ તરીકે, ત્યારથી મહત્તમ પાસવર્ડ આઠ અક્ષરો લાંબો છે. અને અમે ફરી વળવું માટે આ ઉપયોગ કરવા જઈ રહ્યાં છો બધા શક્ય શબ્દમાળાઓ પર કે કરી શકે છે માન્ય પાસવર્ડ્સ છે. તેથી જો એક પાસવર્ડ માન્ય અક્ષરો પછી માત્ર એ, બી, અને સી હતા, અમે વધુ B, C, ફરી વળવું હોત આ, BA, CA, અને તેથી પર, ત્યાં સુધી અમે cccccccc જોવા માટે વિચાર - આઠ કેચ માતાનો. અને અમે એક માન્ય નીચે ન હોય તો પાસવર્ડ, પછી આપણે કહેવું જરૂર છે કે એનક્રિપ્ટ થયેલ શબ્દમાળાને ન હતી સાથે શરૂ કરવા માટે માન્ય. તેથી હવે, આપણે 1 લૂપ ત્યારે આ પહોંચે છે. તે અર્થ એ છે કે નોટિસ અનંત લૂપ. આ બોલ પર કોઈ વિરામ નિવેદન ત્યાં નોટિસ આ અનંત લૂપ પર આધારિત છે. માત્ર નિવેદનો ત્યાં પરત આવે છે. તેથી આપણે ખરેખર અપેક્ષા ક્યારેય લૂપ બહાર નીકળવા માટે. અમે ફક્ત કાર્યક્રમ બહાર નીકળવા માટે અપેક્ષા. હું આ પ્રિન્ટ નિવેદન ઉમેર્યા આ લૂપ ટોચ માત્ર છાપે માટે અંતે શું અમારી વર્તમાન અનુમાન શું પાસવર્ડ છે. હવે, આ લૂપ શું કરવાનું છે? તે બધા શક્ય શબ્દમાળાઓ પર નથીં છે કે માન્ય પાસવર્ડ્સ હોઈ શકે છે. અમે કરવા જઇ રહ્યાં છો તે પ્રથમ વસ્તુ છે અમારા વર્તમાન અનુમાન લેવા શું માટે પાસવર્ડ છે. અમે માંથી grabbed કે મીઠું લઇ શકશો એનક્રિપ્ટ થયેલ શબ્દમાળાને, અને અમે છો આ અનુમાન એન્ક્રિપ્ટ કરવા માટે જવાનું. આ અમને એનક્રિપ્ટ થયેલ અનુમાન આપશે અમે સામે સરખામણી કરવા માટે જઈ રહ્યાં છો, જે એનક્રિપ્ટ થયેલ શબ્દમાળા કે જે વપરાશકર્તા આદેશ વાક્ય પર દાખલ થયો હતો. તેઓ એ જ હોય ​​તો જે કિસ્સામાં તુલનાત્મક સ્ટ્રિંગ, જો શૂન્ય આપશે તેઓ એ જ છીએ, પછી ધારી એ એનક્રિપ્ટ થયેલ પેદા કે પાસવર્ડ સ્ટ્રિંગ, અમે છાપી શકો છો, કે જે કિસ્સામાં અમારા પાસવર્ડ અને વળતર તરીકે છે. પરંતુ તેઓ એક જ ન હતા, જો કે, અમારા અનુમાન ખોટું હતું થાય છે. અને અમે ફરી વળવું કરવા માંગો છો આગામી માન્ય અનુમાન. કે જેથી માતાનો આ શું છે જ્યારે લૂપ કરવા માટે પ્રયાસ કરી રહ્યા છે. તે આપણા અનુમાન ફરી વળવું બનશે આગામી માન્ય અનુમાન છે. અમે કહે છે કે જ્યારે નોટિસ કે અમારા અનુમાન ચોક્કસ અક્ષર છે જે ઉપર અહીં મહત્તમ પ્રતીક પહોંચી, હેશ, કારણ એક ઝૂલતો ડેશ તરીકે વ્યાખ્યાયિત થયેલ છે કે સૌથી ASCII કિંમત પાત્ર છે વપરાશકર્તાને પર દાખલ કરી શકો છો કે જે કીબોર્ડ, જ્યારે અક્ષર પહોંચે મહત્તમ પ્રતીક, તો પછી અમે મોકલવા માંગો છો તે ન્યુનત્તમ પ્રતીક પાછા જે ફરીથી, સૌથી ઓછું ASCII એક જગ્યા છે કિંમત સંજ્ઞા વપરાશકર્તાને કરી શકો છો કે જે કીબોર્ડ પર દાખલ. તેથી અમે તે સેટ કરવાની જઈ રહ્યાં છો લઘુત્તમ પ્રતીક છે. અને પછી આપણે જવા માટે જઈ રહ્યાં છો આગલા અક્ષર પર. તેથી કેવી રીતે અમારા guesses છે ફરી વળવું જવા? વેલ, આ માન્ય અક્ષરો, એ, બી હોય તો અને c, તો પછી અમે એક સાથે પ્રારંભ જો તે બી ફરી વળવું પડશે, તે પડશે સી ફરી વળવું. કેચ અમારા મહત્તમ પ્રતીક છે, તેથી અમે સેટ પડશે એક પાછા C, લઘુત્તમ પ્રતીક. અને પછી અમે ઇન્ડેક્સ ફરી વળવું પડશે આગલા અક્ષર પર. મૂળ અનુમાન કેચ, આગામી હતી તેથી જો અક્ષર નલ હોઈ ચાલે છે ટર્મીનેટર. નીચે અહીં, નોટિસ કે જો અક્ષર આપણે હવે કરવા માંગો છો ઈજાફો, આ નલ ટર્મિનેટર હતી પછી અમે તેને સેટ કરવા જઈ રહ્યાં છો ન્યુનત્તમ પ્રતીક. જો ધારી પછી, સી હતી તેથી જો અમારી નવી અનુમાન આ હોઈ ચાલે છે. અને અમારા મૂળ અનુમાન તો પછી cccc, અમારી નવી અનુમાન aaaaa હોઈ ચાલે છે. તેથી જ્યારે અમે મહત્તમ શબ્દમાળા સુધી પહોંચવા આપેલ રન, પછી અમે છો લઘુત્તમ શબ્દમાળાને અમલ કરવા જઈ આગામી રન, કે જે ચાલશે ફક્ત બધા અક્ષરો હોવા લઘુત્તમ પ્રતીક. હવે, આ ચેક અહીં શું કરવાનું છે? વેલ, જો ઇન્ડેક્સ આઠમા માંથી ખસેડવામાં નવ પાત્ર માટે પાત્ર - તેથી અમે આઠ કેચ માતાનો તરીકે ઉમેરો ધારી અમારા અગાઉના - પછી ઇન્ડેક્સ પર ધ્યાન કેન્દ્રિત કરવા માટે ચાલુ છે અમારા અનુમાન છેલ્લા નલ ટર્મિનેટર ખરેખર અર્થ નથી કે જે એરે, અમારા પાસવર્ડ વાપરી શકાય. અમે તે છેલ્લા નલ પર ધ્યાન કેન્દ્રિત કરવામાં આવે છે તેથી જો ટર્મીનેટર, તો પછી અમે મળ્યા નથી માન્ય માત્ર આઠ મદદથી કે પાસવર્ડ ત્યાં કોઈ અર્થ એ થાય કે જે અક્ષરો, એન્ક્રિપ્ટ કે માન્ય પાસવર્ડ આપેલ શબ્દમાળા છે. અને અમે કહેતા કે, છાપવાનો છે અમે એક માન્ય શોધી શક્યા નહિં પાસવર્ડ, અને પાછા ફરો. તેથી આ વખતે લૂપ ફરી વળવું ચાલે છે બધા શક્ય શબ્દમાળાઓ છે. તે શોધે છે, તો કોઈપણ માટે એન્ક્રિપ્ટ કે અપેક્ષા એનક્રિપ્ટ થયેલ શબ્દમાળાને, તે પડશે કે પાસવર્ડ આવો. અને તે પછી, ખાવા શોધવા નથી તેને છાપી આપશે કે તે ખાવા શોધવા માટે સમર્થ નહિં હોય. હવે, નોટિસ કે બધા ઉપર વારો શક્ય શબ્દમાળાઓ કદાચ ચાલે છે જ્યારે લે છે. ચાલો ખરેખર કેવી દેખાય છે તે લાંબા કે લે છે. માતાનો ક્રેક કરી દો. વેલ, અરે - તે અવ્યાખ્યાયિત કહે છે ક્રિપ્ટ માટે સંદર્ભ. પી ઉલ્લેખનું સુયોજિત કરે છે અને તેથી, યાદ ક્રિપ્ટ માટે પણ માણસ પાનું છે કે અમે ભોંયરામાં લિંક કરવાની જરૂર છે. હવે, મૂળભૂત આદેશ બનાવવા ખબર નથી કે તમે કે કાર્ય ઉપયોગ કરવા માંગો છો. તેથી ચાલો આ ક્લાઈન્ટ આદેશ નકલ અને માત્ર ઓવરને પર ઉમેરો તે, લિંક ક્રિપ્ટ. હવે, તે કમ્પાઇલ. તેથી ચાલો આપેલ પર ક્રેક સ્કોર એનક્રિપ્ટ થયેલ શબ્દમાળાને - સીઝરની છે. કે જેથી ખૂબ ઝડપી હતી. આ 13 અંત હશે. વેલ, સીઝરનું એનક્રિપ્ટ થયેલ પાસવર્ડ 13 હોઈ બને. તેથી માતાનો બીજા પાસવર્ડ પ્રયાસ કરીએ. માતાનો Hirschhorn માતાનો એનક્રિપ્ટ થયેલ લેવા દો પાસવર્ડ અને તે ક્રેકીંગ પ્રયાસ કરો. અમે પહેલેથી જ પહોંચી ગયા છો તેથી નોટિસ ત્રણ અક્ષરો. અને અમે બધા શક્ય ઉપર વારો કરી રહ્યાં છો ત્રણ અક્ષરના શબ્દમાળાઓ. કે અમે પહેલેથી જ સમાપ્ત કર્યું અર્થ એ થાય બધા શક્ય એક ઉપર વારો અને બે અક્ષર શબ્દમાળાઓ. આ ચાલે છે, જેમ કે હવે, લાગે છે અમે પહોંચતા પહેલા જ્યારે લે છે ચાર અક્ષરના શબ્દમાળાઓ. તે બે મિનિટ લાગી શકે છે. તે બે મિનિટ લાગી ન હતી. અમે ચાર અક્ષરના શબ્દમાળાઓ પર છો. પરંતુ હવે, આપણે બધા પર ફરી વળવું જરૂર શક્ય ચાર અક્ષરના શબ્દમાળાઓ છે, કે જે કે કદાચ 10 મિનિટ લાગી શકે છે. અને પછી આપણે પાંચ પાત્ર સુધી પહોંચે ત્યારે શબ્દમાળાઓ, અમે બધા પર ફરી વળવું જરૂર તે છે, કે જે કદાચ એક દંપતિ કલાક લાગી. અને અમે બધા શક્ય પર ફરી વળવું જરૂર છ અક્ષરના શબ્દમાળાઓ છે, કે જે તેથી થોડા દિવસ લાગી શકે છે. તેથી તે ખૂબ જ લાંબા માણસો લઇ શકે છે બધા શક્ય પર ફરી વળવું માટે સમય આઠ પાત્ર અને ઓછા શબ્દમાળાઓ. તેથી આ એક હોય તે જરૂરી નથી કે નોટિસ શોધવા માટે ખૂબ જ કાર્યક્ષમ અલ્ગોરિધમનો પાસવર્ડ. તમને લાગે કે કદાચ ત્યાં સારી રીતો છે. ઉદાહરણ તરીકે, પાસવર્ડ zyx! 32ab કદાચ એક ખૂબ જ સામાન્ય પાસવર્ડ, નથી 12345 પાસવર્ડ છે, જ્યારે કદાચ વધુ ઘણો સામાન્ય છે. પાસવર્ડ શોધવા માટે પ્રયાસ કરી રહ્યા છે, જેથી એક માર્ગ વધુ ઝડપથી માત્ર જોવા માટે છે વધુ સામાન્ય છે કે પાસવર્ડો મુ. તેથી, ઉદાહરણ તરીકે, અમે શબ્દો વાંચવા માટે પ્રયાસ કરી શકો છો એક શબ્દકોશ અને તમામ પ્રયાસ અમારા પાસવર્ડ guesses તરીકે તે શબ્દો. હવે, કદાચ એક પાસવર્ડ જે સરળ છે. કદાચ વપરાશકર્તા અંશે હોંશિયાર હતા અને એક નંબર ઉમેરવાની પ્રયાસ એક શબ્દ ઓવરને. તેથી કદાચ તેમના પાસવર્ડ password1 હતી. તેથી તમે બધા શબ્દો ઉપર વારો પ્રયાસ કરી શકો છો એક સાથે શબ્દકોશ તે ઓવરને ઉમેરાવું. અને પછી કદાચ કે કરી પછી, તમે પડશે તે અંત સુધી બે જોડો. અથવા કદાચ વપરાશકર્તા પણ હોઈ કરવાનો પ્રયાસ કરી રહ્યા છે વધુ હોંશિયાર, અને તેઓ માંગો છો તેમની પાસવર્ડ ", હેકર" હોઈ પરંતુ તેઓ કરશો ઈ ના બધા ઘટકોને બદલવા જઈ થ્રીસ સાથે. તેથી તમે પણ આવું કરી શકે છે. જો શબ્દકોશ બધા શબ્દો પર ફરી વળવું પરંતુ તે અક્ષરો બદલો તે નંબરો સાથે નંબરો જેવો. આ રીતે, તેથી તમે પણ વધુ પકડી શકે છે ખૂબ સામાન્ય હોય છે કે પાસવર્ડો. પરંતુ અંતે, માત્ર માર્ગ તમે કરી શકો છો બધા પાસવર્ડ્સ મેળવે જડ છે બધા પર ફરી વળવું દબાણ શક્ય શબ્દમાળાઓ. તેથી ઓવરને, તમે ફરી વળવું પડશે એક અક્ષર થી બધા શબ્દમાળાઓ પર એક સમય લાગી શકે છે, જે આઠ અક્ષરો, ખૂબ જ લાંબા સમય છે, પરંતુ જો તમે તે શું કરવાની જરૂર છે. મારું નામ રોબ બોડેન છે. અને આ ક્રેક છે.