{"id":669,"date":"2012-05-15T13:21:21","date_gmt":"2012-05-15T12:21:21","guid":{"rendered":"http:\/\/www.phillips321.co.uk\/?p=669"},"modified":"2015-05-05T12:40:59","modified_gmt":"2015-05-05T11:40:59","slug":"hash-generator-perl-script-hash-generator-pl","status":"publish","type":"post","link":"https:\/\/www.phillips321.co.uk\/2012\/05\/15\/hash-generator-perl-script-hash-generator-pl\/","title":{"rendered":"Hash Generator perl script (hash-generator.pl)"},"content":{"rendered":"<p>So I used a <a href=\"http:\/\/hashcat.net\/oclhashcat-plus\/\" target=\"_blank\">test script made by atom<\/a> a while back to create <a href=\"http:\/\/www.phillips321.co.uk\/2012\/04\/11\/oclhashcat-examples-of-lots-of-different-hash-types\/\" title=\"oclHashcat Examples of lots of different hash types\" target=\"_blank\">a bit of code<\/a> that outputs a hash for a given password. It didn&#8217;t support stdin so I thought I would update it, and here it is.<\/p>\n<p>Note: Don&#8217;t copy\/paste the code, instead get it from here: <a href=\"hhttps:\/\/github.com\/phillips321\/hashcat-passgen\" target=\"_blank\">googlecode.com<\/a><\/p>\n<div class=\"codecolorer-container perl vibrant\" style=\"overflow:auto;white-space:nowrap;width:100%;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/>96<br \/>97<br \/>98<br \/>99<br \/>100<br \/>101<br \/>102<br \/>103<br \/>104<br \/>105<br \/>106<br \/>107<br \/>108<br \/>109<br \/>110<br \/>111<br \/>112<br \/>113<br \/>114<br \/>115<br \/>116<br \/>117<br \/>118<br \/>119<br \/>120<br \/>121<br \/>122<br \/>123<br \/>124<br \/>125<br \/>126<br \/>127<br \/>128<br \/>129<br \/>130<br \/>131<br \/>132<br \/>133<br \/>134<br \/>135<br \/>136<br \/>137<br \/>138<br \/>139<br \/>140<br \/>141<br \/>142<br \/>143<br \/>144<br \/>145<br \/>146<br \/>147<br \/>148<br \/>149<br \/>150<br \/>151<br \/>152<br \/>153<br \/>154<br \/>155<br \/>156<br \/>157<br \/>158<br \/>159<br \/>160<br \/>161<br \/>162<br \/>163<br \/>164<br \/>165<br \/>166<br \/>167<br \/>168<br \/>169<br \/>170<br \/>171<br \/>172<br \/>173<br \/>174<br \/>175<br \/>176<br \/>177<br \/>178<br \/>179<br \/>180<br \/>181<br \/>182<br \/>183<br \/>184<br \/>185<br \/>186<br \/>187<br \/>188<br \/>189<br \/>190<br \/>191<br \/>192<br \/>193<br \/>194<br \/>195<br \/>196<br \/>197<br \/>198<br \/>199<br \/>200<br \/>201<br \/>202<br \/>203<br \/>204<br \/>205<br \/>206<br \/>207<br \/>208<br \/>209<br \/>210<br \/>211<br \/>212<br \/>213<br \/>214<br \/>215<br \/>216<br \/>217<br \/>218<br \/>219<br \/>220<br \/>221<br \/>222<br \/>223<br \/>224<br \/>225<br \/>226<br \/>227<br \/>228<br \/>229<br \/>230<br \/>231<br \/>232<br \/>233<br \/>234<br \/>235<br \/>236<br \/>237<br \/>238<br \/>239<br \/>240<br \/>241<br \/>242<br \/>243<br \/>244<br \/>245<br \/>246<br \/>247<br \/>248<br \/>249<br \/>250<br \/>251<br \/>252<br \/>253<br \/>254<br \/>255<br \/>256<br \/>257<br \/>258<br \/>259<br \/>260<br \/>261<br \/>262<br \/>263<br \/>264<br \/><\/div><\/td><td><div class=\"perl codecolorer\"><span class=\"co1\">#!\/usr\/bin\/perl<\/span><br \/>\n<span class=\"co1\">#__________________________________________________________<\/span><br \/>\n<span class=\"co1\"># Author: &nbsp; &nbsp; phillips321 contact through phillips321.co.uk<\/span><br \/>\n<span class=\"co1\"># License: &nbsp; &nbsp;CC BY-SA 3.0<\/span><br \/>\n<span class=\"co1\"># Use: &nbsp; &nbsp; &nbsp; &nbsp;Hash generator<\/span><br \/>\n<span class=\"co1\"># Released: &nbsp; www.phillips321.co.uk<\/span><br \/>\n<span class=\"co1\"># Thanks to: &nbsp;atom for the origional script which i have used<\/span><br \/>\n<span class=\"co1\"># Dependencies:<\/span><br \/>\n<span class=\"co1\"># &nbsp; see header below<\/span><br \/>\n<span class=\"co1\"># ToDo:<\/span><br \/>\n<span class=\"co1\"># &nbsp; Make code neater<\/span><br \/>\n<span class=\"co1\"># ChangeLog:<\/span><br \/>\n<span class=\"co1\"># &nbsp; v0.2 - thanks to atom<\/span><br \/>\n<span class=\"co1\"># &nbsp; v0.1 - first release<\/span><br \/>\n<br \/>\n<span class=\"kw2\">use<\/span> strict<span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> warnings<span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Digest<span class=\"sy0\">::<\/span><span class=\"me2\">MD4<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/qw.html\"><span class=\"kw3\">qw<\/span><\/a> <span class=\"br0\">&#40;<\/span>md4 md4_hex<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Digest<span class=\"sy0\">::<\/span><span class=\"me2\">MD5<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/qw.html\"><span class=\"kw3\">qw<\/span><\/a> <span class=\"br0\">&#40;<\/span>md5 md5_hex<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Digest<span class=\"sy0\">::<\/span><span class=\"me2\">SHA<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/qw.html\"><span class=\"kw3\">qw<\/span><\/a> <span class=\"br0\">&#40;<\/span>sha1 sha1_hex sha256_hex sha512_hex<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Crypt<span class=\"sy0\">::<\/span><span class=\"me2\">MySQL<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/qw.html\"><span class=\"kw3\">qw<\/span><\/a> <span class=\"br0\">&#40;<\/span>password41<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Crypt<span class=\"sy0\">::<\/span><span class=\"me2\">PasswdMD5<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Crypt<span class=\"sy0\">::<\/span><span class=\"me2\">PBKDF2<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Crypt<span class=\"sy0\">::<\/span><span class=\"me2\">CBC<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> MIME<span class=\"sy0\">::<\/span><span class=\"me2\">Base64<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Authen<span class=\"sy0\">::<\/span><span class=\"me2\">Passphrase<\/span><span class=\"sy0\">::<\/span><span class=\"me2\">PHPass<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Authen<span class=\"sy0\">::<\/span><span class=\"me2\">Passphrase<\/span><span class=\"sy0\">::<\/span><span class=\"me2\">LANManager<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">use<\/span> Encode<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">my<\/span> <span class=\"re0\">@modes<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">11<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">21<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">100<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">101<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">111<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">112<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">121<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">122<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">131<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">132<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">300<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">400<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">500<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">900<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1000<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1100<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1400<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1500<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1600<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1700<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1722<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2100<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2400<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2600<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2611<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2711<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2811<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">3000<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">3100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/scalar.html\"><span class=\"kw3\">scalar<\/span><\/a> <span class=\"sy0\">@<\/span><span class=\"kw2\">ARGV<\/span> <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/die.html\"><span class=\"kw3\">die<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;usage: $0 [mode] ['password' or stdin]<br \/>\nHash types:<br \/>\n&nbsp; &nbsp; 0 = MD5<br \/>\n&nbsp; &nbsp;11 = Joomla<br \/>\n&nbsp; &nbsp;21 = osCommerce, xt:Commerce<br \/>\n&nbsp; 100 = SHA1<br \/>\n&nbsp; 101 = nsldap, SHA-1(Base64), Netscape LDAP SHA<br \/>\n&nbsp; 111 = nsldaps, SSHA-1(Base64), Netscape LDAP SSHA<br \/>\n&nbsp; 112 = Oracle 11g<br \/>\n&nbsp; 121 = SMF &gt; v1.1<br \/>\n&nbsp; 122 = OSX v10.4, v10.5, v10.6<br \/>\n&nbsp; 131 = MSSQL(2000)<br \/>\n&nbsp; 132 = MSSQL(2005)<br \/>\n&nbsp; 300 = MySQL<br \/>\n&nbsp; 400 = phpass, MD5(Wordpress), MD5(phpBB3)<br \/>\n&nbsp; 500 = md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5<br \/>\n&nbsp; 900 = MD4<br \/>\n&nbsp;1000 = NTLM<br \/>\n&nbsp;1100 = Domain Cached Credentials, mscash<br \/>\n&nbsp;1400 = SHA256<br \/>\n&nbsp;1500 = descrypt, DES(Unix), Traditional DES<br \/>\n&nbsp;1600 = md5apr1, MD5(APR), Apache MD5<br \/>\n&nbsp;1700 = SHA512<br \/>\n&nbsp;1722 = OSX v10.7<br \/>\n&nbsp;2100 = Domain Cached Credentials2, mscash2<br \/>\n&nbsp;2400 = Cisco-PIX MD5<br \/>\n&nbsp;2600 = Double MD5<br \/>\n&nbsp;2611 = vBulletin &lt; v3.8.5<br \/>\n&nbsp;2711 = vBulletin &gt; v3.8.5<br \/>\n&nbsp;2811 = IPB2+, MyBB1.2+<br \/>\n&nbsp;3000 = LM<br \/>\n&nbsp;3100 = Oracle 7-10g, DES(Oracle)<br \/>\n&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">my<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a> <span class=\"sy0\">@<\/span><span class=\"kw2\">ARGV<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">my<\/span> <span class=\"re0\">$password<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a> <span class=\"sy0\">@<\/span><span class=\"kw2\">ARGV<\/span> <span class=\"sy0\">\/\/<\/span> <span class=\"re4\">&lt;STDIN&gt;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nsingle <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw2\">sub<\/span> single<span class=\"br0\">&#123;<\/span> <span class=\"co1\">#mode #password<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$password<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/defined.html\"><span class=\"kw3\">defined<\/span><\/a> <span class=\"re0\">$mode<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">@modes<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$j<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$j<\/span> <span class=\"sy0\">&lt;<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/scalar.html\"><span class=\"kw3\">scalar<\/span><\/a> <span class=\"re0\">@modes<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$j<\/span><span class=\"sy0\">++<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$modes<\/span><span class=\"br0\">&#91;<\/span><span class=\"re0\">$j<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">0<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">100<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">101<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">300<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">600<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">900<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1000<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1400<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1700<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2400<\/span> <span class=\"sy0\">||<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2600<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">11<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">32<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">21<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">111<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">112<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">20<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">121<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_len<\/span> <span class=\"sy0\">=<\/span> get_random_num <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">15<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_len<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">122<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">131<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">132<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">400<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">500<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1100<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_len<\/span> <span class=\"sy0\">=<\/span> get_random_num <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">15<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_len<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1500<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1600<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1722<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2100<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_len<\/span> <span class=\"sy0\">=<\/span> get_random_num <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">15<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_len<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2611<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">3<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2711<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">30<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2811<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">5<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">3000<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">elsif<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">3100<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>rnd <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n<a href=\"http:\/\/perldoc.perl.org\/functions\/exit.html\"><span class=\"kw3\">exit<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"kw2\">sub<\/span> gen_hash<span class=\"br0\">&#123;<\/span> <span class=\"co1\">#mode #password #salt<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$word_buf<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_buf<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$tmp_hash<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md5_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">11<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md5_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">21<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md5_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha1_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">101<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$ctx<\/span> <span class=\"sy0\">=<\/span> Digest<span class=\"sy0\">::<\/span><span class=\"me2\">SHA1<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"kw2\">new<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$ctx<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">add<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> encode_base64 <span class=\"br0\">&#40;<\/span><span class=\"re0\">$ctx<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">digest<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <a href=\"http:\/\/perldoc.perl.org\/functions\/chomp.html\"><span class=\"kw3\">chomp<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;{SHA}%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">111<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span> <br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$ctx<\/span> <span class=\"sy0\">=<\/span> Digest<span class=\"sy0\">::<\/span><span class=\"me2\">SHA1<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"kw2\">new<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$ctx<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">add<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$ctx<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">add<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> encode_base64 <span class=\"br0\">&#40;<\/span><span class=\"re0\">$ctx<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">digest<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <a href=\"http:\/\/perldoc.perl.org\/functions\/chomp.html\"><span class=\"kw3\">chomp<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;{SSHA}%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">112<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">&lt;<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">+=<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$num<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$pos<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">.=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/chr.html\"><span class=\"kw3\">chr<\/span><\/a> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/hex.html\"><span class=\"kw3\">hex<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$num<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha1_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$salt_buf_bin<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">121<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha1_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">122<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">&lt;<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">+=<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$num<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$pos<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">.=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/chr.html\"><span class=\"kw3\">chr<\/span><\/a> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/hex.html\"><span class=\"kw3\">hex<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$num<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha1_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">131<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">&lt;<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">+=<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$num<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$pos<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">.=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/chr.html\"><span class=\"kw3\">chr<\/span><\/a> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/hex.html\"><span class=\"kw3\">hex<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$num<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha1_hex <span class=\"br0\">&#40;<\/span>encode <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;UTF-16LE&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$salt_buf_bin<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;0x0100%s%s%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;0&quot;<\/span> x <span class=\"nu0\">40<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">132<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">&lt;<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">+=<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$num<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$pos<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">.=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/chr.html\"><span class=\"kw3\">chr<\/span><\/a> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/hex.html\"><span class=\"kw3\">hex<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$num<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha1_hex <span class=\"br0\">&#40;<\/span>encode <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;UTF-16LE&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$salt_buf_bin<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;0x0100%s%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">300<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a> <span class=\"br0\">&#40;<\/span>password41 <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">400<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$ppr<\/span> <span class=\"sy0\">=<\/span> Authen<span class=\"sy0\">::<\/span><span class=\"me2\">Passphrase<\/span><span class=\"sy0\">::<\/span><span class=\"me2\">PHPass<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"kw2\">new<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; cost <span class=\"sy0\">=&gt;<\/span> <span class=\"nu0\">11<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; salt <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; passphrase <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$ppr<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">as_rfc2307<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">7<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">500<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> unix_md5_crypt <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">900<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md4_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1000<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md4_hex <span class=\"br0\">&#40;<\/span>encode <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;UTF-16LE&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1100<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md4_hex <span class=\"br0\">&#40;<\/span>md4 <span class=\"br0\">&#40;<\/span>encode <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;UTF-16LE&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">.<\/span> encode <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;UTF-16LE&quot;<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/lc.html\"><span class=\"kw3\">lc<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1400<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha256_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1500<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/crypt.html\"><span class=\"kw3\">crypt<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1600<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> apache_md5_crypt <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1700<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha512_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">1722<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">&lt;<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$pos<\/span> <span class=\"sy0\">+=<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$num<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$pos<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">.=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/chr.html\"><span class=\"kw3\">chr<\/span><\/a> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/hex.html\"><span class=\"kw3\">hex<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$num<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> sha512_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf_bin<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2100<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt<\/span> <span class=\"sy0\">=<\/span> encode <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;UTF-16LE&quot;<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/lc.html\"><span class=\"kw3\">lc<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$pbkdf2<\/span> <span class=\"sy0\">=<\/span> Crypt<span class=\"sy0\">::<\/span><span class=\"me2\">PBKDF2<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"kw2\">new<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; hash_class <span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'HMACSHA1'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; iterations <span class=\"sy0\">=&gt;<\/span> <span class=\"nu0\">10240<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; output_len <span class=\"sy0\">=&gt;<\/span> <span class=\"nu0\">16<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; salt_len &nbsp; <span class=\"sy0\">=&gt;<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/unpack.html\"><span class=\"kw3\">unpack<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;H*&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$pbkdf2<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">PBKDF2<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt<\/span><span class=\"sy0\">,<\/span> md4 <span class=\"br0\">&#40;<\/span>md4 <span class=\"br0\">&#40;<\/span>encode <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;UTF-16LE&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$salt<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2400<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> pseudo_base64 <span class=\"br0\">&#40;<\/span>Digest<span class=\"sy0\">::<\/span><span class=\"me2\">MD5<\/span><span class=\"sy0\">::<\/span><span class=\"me2\">md5<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span> <span class=\"sy0\">.<\/span> <span class=\"st0\">&quot;<span class=\"es0\">\\0<\/span>&quot;<\/span> x <span class=\"br0\">&#40;<\/span><span class=\"nu0\">16<\/span> <span class=\"sy0\">-<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2600<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md5_hex <span class=\"br0\">&#40;<\/span>md5_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2611<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md5_hex <span class=\"br0\">&#40;<\/span>md5_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2711<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md5_hex <span class=\"br0\">&#40;<\/span>md5_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">2811<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> md5_hex <span class=\"br0\">&#40;<\/span>md5_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">.<\/span> md5_hex <span class=\"br0\">&#40;<\/span><span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">3000<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$ppr<\/span> <span class=\"sy0\">=<\/span> Authen<span class=\"sy0\">::<\/span><span class=\"me2\">Passphrase<\/span><span class=\"sy0\">::<\/span><span class=\"me2\">LANManager<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"kw2\">new<\/span> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;passphrase&quot;<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$ppr<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">hash_hex<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span> <span class=\"sy0\">==<\/span> <span class=\"nu0\">3100<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"re0\">$hash_buf<\/span> <span class=\"sy0\">=<\/span> oracle_hash <span class=\"br0\">&#40;<\/span><span class=\"re0\">$salt_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/sprintf.html\"><span class=\"kw3\">sprintf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%s:%s&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <a href=\"http:\/\/perldoc.perl.org\/functions\/return.html\"><span class=\"kw3\">return<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$tmp_hash<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"kw2\">sub<\/span> rnd<span class=\"br0\">&#123;<\/span> <span class=\"co1\">#mode #saltlength #password<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$mode<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_len<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$password<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$word_buf<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$password<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">@salt_arr<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$i<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$i<\/span> <span class=\"sy0\">&lt;<\/span> <span class=\"re0\">$salt_len<\/span><span class=\"sy0\">;<\/span> <span class=\"re0\">$i<\/span><span class=\"sy0\">++<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><span class=\"kw1\">my<\/span> <span class=\"re0\">$c<\/span> <span class=\"sy0\">=<\/span> get_random_chr <span class=\"br0\">&#40;<\/span>0x30<span class=\"sy0\">,<\/span> 0x39<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/push.html\"><span class=\"kw3\">push<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">@salt_arr<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$c<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$salt_buf<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/join.html\"><span class=\"kw3\">join<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">@salt_arr<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> <br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$tmp_hash<\/span> <span class=\"sy0\">=<\/span> gen_hash <span class=\"br0\">&#40;<\/span><span class=\"re0\">$mode<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$word_buf<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$salt_buf<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <a href=\"http:\/\/perldoc.perl.org\/functions\/printf.html\"><span class=\"kw3\">printf<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;$tmp_hash<span class=\"es0\">\\n<\/span>&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n<span class=\"kw2\">sub<\/span> get_random_num<span class=\"br0\">&#123;<\/span> <span class=\"co1\">#min #max<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$min<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$max<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <a href=\"http:\/\/perldoc.perl.org\/functions\/return.html\"><span class=\"kw3\">return<\/span><\/a> <a href=\"http:\/\/perldoc.perl.org\/functions\/int.html\"><span class=\"kw3\">int<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/rand.html\"><span class=\"kw3\">rand<\/span><\/a> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$max<\/span> <span class=\"sy0\">-<\/span> <span class=\"re0\">$min<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"re0\">$min<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"kw2\">sub<\/span> get_random_chr<span class=\"br0\">&#123;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/return.html\"><span class=\"kw3\">return<\/span><\/a> <a href=\"http:\/\/perldoc.perl.org\/functions\/chr.html\"><span class=\"kw3\">chr<\/span><\/a> get_random_num <span class=\"br0\">&#40;<\/span><span class=\"co5\">@_<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"kw2\">sub<\/span> pseudo_base64<span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$itoa64<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;.\/0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$md5<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/shift.html\"><span class=\"kw3\">shift<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$s64<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"kw1\">my<\/span> <span class=\"re0\">$i<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">..<\/span><span class=\"nu0\">3<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$v<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/unpack.html\"><span class=\"kw3\">unpack<\/span><\/a> <span class=\"st0\">&quot;V&quot;<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$md5<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$i<\/span><span class=\"sy0\">*<\/span><span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">4<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">..<\/span><span class=\"nu0\">4<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><span class=\"re0\">$s64<\/span> <span class=\"sy0\">.=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$itoa64<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$v<\/span> <span class=\"sy0\">&amp;<\/span> 0x3f<span class=\"sy0\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"re0\">$v<\/span> <span class=\"sy0\">&gt;&gt;=<\/span> <span class=\"nu0\">6<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <a href=\"http:\/\/perldoc.perl.org\/functions\/return.html\"><span class=\"kw3\">return<\/span><\/a> <span class=\"re0\">$s64<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"kw2\">sub<\/span> oracle_hash<span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$username<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">=<\/span> <span class=\"co5\">@_<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$userpass<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/pack.html\"><span class=\"kw3\">pack<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'n*'<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/unpack.html\"><span class=\"kw3\">unpack<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'C*'<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/uc.html\"><span class=\"kw3\">uc<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$username<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"re0\">$userpass<\/span> <span class=\"sy0\">.=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/pack.html\"><span class=\"kw3\">pack<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'C'<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">while<\/span> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$userpass<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">%<\/span> <span class=\"nu0\">8<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$key<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/pack.html\"><span class=\"kw3\">pack<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'H*'<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;0123456789ABCDEF&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$iv<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/pack.html\"><span class=\"kw3\">pack<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'H*'<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;0000000000000000&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$c<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> Crypt<span class=\"sy0\">::<\/span><span class=\"me2\">CBC<\/span><span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>literal_key <span class=\"sy0\">=&gt;<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>cipher <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">&quot;DES&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>key <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$key<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>iv <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$iv<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>header <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">&quot;none&quot;<\/span><br \/>\n&nbsp; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$key2<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$c<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">encrypt<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$userpass<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$userpass<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$c2<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> Crypt<span class=\"sy0\">::<\/span><span class=\"me2\">CBC<\/span><span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>literal_key <span class=\"sy0\">=&gt;<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>cipher <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">&quot;DES&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>key <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$key2<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>iv <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$iv<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">-<\/span>header <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">&quot;none&quot;<\/span><br \/>\n&nbsp; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">my<\/span> <span class=\"re0\">$hash<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/substr.html\"><span class=\"kw3\">substr<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$c2<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">encrypt<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$userpass<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/perldoc.perl.org\/functions\/length.html\"><span class=\"kw3\">length<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$userpass<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">8<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <a href=\"http:\/\/perldoc.perl.org\/functions\/return.html\"><span class=\"kw3\">return<\/span><\/a> <a href=\"http:\/\/perldoc.perl.org\/functions\/uc.html\"><span class=\"kw3\">uc<\/span><\/a><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/perldoc.perl.org\/functions\/unpack.html\"><span class=\"kw3\">unpack<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'H*'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$hash<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>What this code does is takes a password and creates a hash for it determined by the algorithm:<br \/>\nHash types:<\/p>\n<ul>\n<li>0 = MD5<\/li>\n<li>11 = Joomla<\/li>\n<li>21 = osCommerce, xt:Commerce<\/li>\n<li>100 = SHA1<\/li>\n<li>101 = nsldap, SHA-1(Base64), Netscape LDAP SHA<\/li>\n<li>111 = nsldaps, SSHA-1(Base64), Netscape LDAP SSHA<\/li>\n<li>112 = Oracle 11g<\/li>\n<li>121 = SMF > v1.1<\/li>\n<li>122 = OSX v10.4, v10.5, v10.6<\/li>\n<li>131 = MSSQL(2000)<\/li>\n<li>132 = MSSQL(2005)<\/li>\n<li>300 = MySQL<\/li>\n<li>400 = phpass, MD5(WordPress), MD5(phpBB3)<\/li>\n<li>500 = md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5<\/li>\n<li>900 = MD4<\/li>\n<li>1000 = NTLM<\/li>\n<li>1100 = Domain Cached Credentials, mscash<\/li>\n<li>1400 = SHA256<\/li>\n<li>1500 = descrypt, DES(Unix), Traditional DES<\/li>\n<li>1600 = md5apr1, MD5(APR), Apache MD5<\/li>\n<li>1700 = SHA512<\/li>\n<li>1722 = OSX v10.7<\/li>\n<li>2100 = Domain Cached Credentials2, mscash2<\/li>\n<li>2400 = Cisco-PIX MD5<\/li>\n<li>2600 = Double MD5<\/li>\n<li>2611 = vBulletin < v3.8.5<\/li>\n<li>2711 = vBulletin > v3.8.5<\/li>\n<li>2811 = IPB2+, MyBB1.2+<\/li>\n<li>3000 = LM<\/li>\n<li>3100 = Oracle 7-10g, DES(Oracle)<\/li>\n<\/ul>\n<p>It can either be run on it&#8217;s own or can take the password from standard input:<\/p>\n<div class=\"codecolorer-container text vibrant\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/><\/div><\/td><td><div class=\"text codecolorer\">$ .\/hash-generator.pl 0 password<br \/>\n5f4dcc3b5aa765d61d8327deb882cf99<br \/>\n$ echo -En 'password' | .\/hash-generator.pl 0<br \/>\n5f4dcc3b5aa765d61d8327deb882cf99<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Enojy!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So I used a test script made by atom a while back to create a bit of code that outputs a hash for a given password. It didn&#8217;t support stdin so I thought I would update it, and here it is. Note: Don&#8217;t copy\/paste the code, instead get it from here: googlecode.com 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264#!\/usr\/bin\/perl #__________________________________________________________ # [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[249,248,188,183,250],"_links":{"self":[{"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/posts\/669"}],"collection":[{"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/comments?post=669"}],"version-history":[{"count":7,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/posts\/669\/revisions"}],"predecessor-version":[{"id":1234,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/posts\/669\/revisions\/1234"}],"wp:attachment":[{"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/media?parent=669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/categories?post=669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/tags?post=669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}