Total Commander FTP Password Recovery — SDK

Decode Total Commander FTP passwords. Installable packages for PHP, Python, JavaScript (Node.js), and Rust.

Description

The Total Commander FTP Password Recovery libraries mirror the decryption algorithm used on this site. Each package runs offline on your machine — use them to decode ciphertext from wcx_ftp.ini (hex fields) or to build your own tools and automation. Flexible hex input is supported (case ignored; spacing between byte pairs allowed), which helps when pasting directly from an .ini file.

Installation

Official releases are published to Packagist, PyPI, npm, and crates.io. Source is on GitHub.

Language Installation Package Sources
PHP programming language

Run:

php composer.phar require --prefer-dist pelock/total-commander-ftp-password-recovery "*"

or add the following to require section of your composer.json file

"pelock/total-commander-ftp-password-recovery": "*"
Packagist GitHub
Python programming language pip install total-commander-ftp-password-recovery PyPI GitHub
JavaScript programming language

Run

npm install total-commander-ftp-password-recovery

or add the following to dependencies section of your package.json file

"dependencies": {
  "total-commander-ftp-password-recovery": "latest"
},

npm GitHub
Rust / Cargo

Run:

cargo add total-commander-ftp-password-recovery

or add the following to [dependencies] section of your Cargo.toml file

total-commander-ftp-password-recovery = "1"
Crates GitHub

Usage examples

Decode a single ciphertext (hex string)

<?php

declare(strict_types=1);

require __DIR__ . '/vendor/autoload.php';

use PELock\TotalCommanderFtpPassword\TotalCommanderPasswordDecoder;

$cipherHex = '00112233445566778899aabbccddeeff';

$decoder = new TotalCommanderPasswordDecoder();
$plain = $decoder->decryptPassword($cipherHex);

if ($plain === false) {
    throw new RuntimeException('Invalid ciphertext (bad hex, odd length, or too short).');
}

echo $plain;
echo bin2hex($plain);
from binascii import hexlify

from total_commander_ftp_password import TotalCommanderPasswordDecoder

cipher_hex = "00112233445566778899aabbccddeeff"

decoder = TotalCommanderPasswordDecoder()
plain = decoder.decrypt_password(cipher_hex)

if plain is None:
    raise RuntimeError("Invalid ciphertext (bad hex, odd length, or too short).")

print(plain)
print(hexlify(plain).decode("ascii"))
import { Buffer } from 'node:buffer';
import { TotalCommanderPasswordDecoder } from 'total-commander-ftp-password-recovery';

const cipherHex = '00112233445566778899aabbccddeeff';

const decoder = new TotalCommanderPasswordDecoder();
const plain = decoder.decryptPassword(cipherHex);

if (plain === null) {
  throw new Error('Invalid ciphertext (bad hex, odd length, or too short).');
}

console.log(Buffer.from(plain).toString('latin1'));
console.log(Buffer.from(plain).toString('hex'));
use total_commander_ftp_password_recovery::TotalCommanderPasswordDecoder;

let cipher_hex = "00112233445566778899aabbccddeeff";

let mut decoder = TotalCommanderPasswordDecoder::new();
let plain = decoder
    .decrypt_password(cipher_hex)
    .expect("Invalid ciphertext (bad hex, odd length, or too short).");

let latin1: String = plain.iter().map(|&b| char::from(b)).collect();
println!("{latin1}");

print!("hex: ");
for b in &plain {
    print!("{b:02x}");
}
println!();

Command-line helpers

Each package ships a small tc-ftp-password-decode helper (via Composer vendor/bin, pip console scripts, npx, or cargo install). Example:

tc-ftp-password-decode 00112233445566778899aabbccddeeff

Requirements

Questions?

If you would like to ask me about Total Commander FTP Password Recovery SDKs, or something's not clear, mail me. I'll be happy to answer all of your questions.