Created May 2001
WS_FTP JavaScript Password Decoder
Go into the .ini file, and look for the lines which begin with PWD. Enter the value of the PWD line: It should look like hex encoded gobbledegook with "PWD=" attached to it: PWD=V1DF32C1C88985F24FE8A3D03783C07E2A1667BA9AD77A96E
Update 2015 from Tomasz:
Hey, there!
I found your WS_FTP old hash decoder, and some people were complaining that it doesn't decode the new WS_FTP hashes, so I thought I'd give you a hint in case you don't know the solution already, and feel like updating it some time in the future.
Check out this code - I implemented everything that's needed to decode WS_FTP version >=12 hashes here.
https://github.com/Ciastex/UniDec/blob/master/UniDec.WSFTP12.Codec/Codec.cs
I hope it'll help you a bit.
Source Code
<script type="text/javascript"> function wsFTP_decoder(in_string) { if (in_string.indexOf('PWD=', 0) === -1 || in_string.length - 37 < 0) { alert("ENTRY NOT VALID: be sure to enter the whole line, including 'PWD='"); } else { my_password = in_string.substring(37, in_string.length); var x = ""; for (var i = 0; i < my_password.length / 2; i++) { document.forms[0].decoded_entry.value = ""; var my_character = my_password.substring(i * 2, i * 2 + 2); var my_parsed = in_string.substring(5 + i, 6 + i); var my_clear_txt = parseInt("0x" + my_character) - i - 1 - ((47 + parseInt("0x" + my_parsed)) % 57); x = x + String.fromCharCode(my_clear_txt); document.forms[0].decoded_entry.value = x; } } } </script>