!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/rentals.picotech.app/public_html/node_modules/bcryptjs/tests/   drwxr-xr-x
Free 28.41 GB of 117.98 GB (24.08%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     suite.js (7.08 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
var path = require("path"),
    fs = require("fs"),
    binding = require("bcrypt"),
    bcrypt = require(path.join(__dirname, '..', 'index.js'))/*,
    isaac = eval(
        fs.readFileSync(path.join(__dirname, "..", "src", "bcrypt", "prng", "accum.js"))+
        fs.readFileSync(path.join(__dirname, "..", "src", "bcrypt", "prng", "isaac.js"))+
        " accum.start();"+
        " isaac"
    )*/;
    
module.exports = {

    "encodeBase64": function(test) {
        var str = bcrypt.encodeBase64([0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10], 16);
        test.strictEqual(str, "..CA.uOD/eaGAOmJB.yMBu");
        test.done();
    },

    "decodeBase64": function(test) {
        var bytes = bcrypt.decodeBase64("..CA.uOD/eaGAOmJB.yMBv.", 16);
        test.deepEqual(bytes, [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F]);
        test.done();
    },
    
    "genSaltSync": function(test) {
        var salt = bcrypt.genSaltSync(10);
        test.ok(salt);
        test.ok(typeof salt == 'string');
        test.ok(salt.length > 0);
        test.done();
    },
    
    "genSalt": function(test) {
        bcrypt.genSalt(10, function(err, salt) {
            test.ok(salt);
            test.ok(typeof salt == 'string');
            test.ok(salt.length > 0);
            test.done();
        });
    },
    
    "hashSync": function(test) {
        test.doesNotThrow(function() {
            bcrypt.hashSync("hello", 10);
        });
        test.notEqual(bcrypt.hashSync("hello", 10), bcrypt.hashSync("hello", 10));
        test.done();
    },
    
    "hash": function(test) {
        bcrypt.hash("hello", 10, function(err, hash) {
            test.notOk(err);
            test.ok(hash);
            test.done();
        });
    },
    
    "compareSync": function(test) {
        var salt1 = bcrypt.genSaltSync(),
            hash1 = bcrypt.hashSync("hello", salt1); // $2a$
        var salt2 = bcrypt.genSaltSync().replace(/\$2a\$/, "$2y$"),
            hash2 = bcrypt.hashSync("world", salt2);
        var salt3 = bcrypt.genSaltSync().replace(/\$2a\$/, "$2b$"),
            hash3 = bcrypt.hashSync("hello world", salt3);

        test.strictEqual(hash1.substring(0,4), "$2a$");
        test.ok(bcrypt.compareSync("hello", hash1));
        test.notOk(bcrypt.compareSync("hello", hash2));
        test.notOk(bcrypt.compareSync("hello", hash3));

        test.strictEqual(hash2.substring(0,4), "$2y$");
        test.ok(bcrypt.compareSync("world", hash2));
        test.notOk(bcrypt.compareSync("world", hash1));
        test.notOk(bcrypt.compareSync("world", hash3));

        test.strictEqual(hash3.substring(0,4), "$2b$");
        test.ok(bcrypt.compareSync("hello world", hash3));
        test.notOk(bcrypt.compareSync("hello world", hash1));
        test.notOk(bcrypt.compareSync("hello world", hash2));

        test.done();
    },
    
    "compare": function(test) {
        var salt1 = bcrypt.genSaltSync(),
            hash1 = bcrypt.hashSync("hello", salt1); // $2a$
        var salt2 = bcrypt.genSaltSync();
        salt2 = salt2.substring(0,2)+'y'+salt2.substring(3); // $2y$
        var hash2 = bcrypt.hashSync("world", salt2);
        bcrypt.compare("hello", hash1, function(err, same) {
            test.notOk(err);
            test.ok(same);
            bcrypt.compare("hello", hash2, function(err, same) {
                test.notOk(err);
                test.notOk(same);
                bcrypt.compare("world", hash2, function(err, same) {
                    test.notOk(err);
                    test.ok(same);
                    bcrypt.compare("world", hash1, function(err, same) {
                        test.notOk(err);
                        test.notOk(same);
                        test.done();
                    });
                });
            });
        });
    },
    
    "getSalt": function(test) {
        var hash1 = bcrypt.hashSync("hello", bcrypt.genSaltSync());
        var salt = bcrypt.getSalt(hash1);
        var hash2 = bcrypt.hashSync("hello", salt);
        test.equal(hash1, hash2);
        test.done();
    },
    
    "getRounds": function(test) {
        var hash1 = bcrypt.hashSync("hello", bcrypt.genSaltSync());
        test.equal(bcrypt.getRounds(hash1), 10);
        test.done();
    },
   
    "progress": function(test) {
        bcrypt.genSalt(12, function(err, salt) {
            test.ok(!err);
            var progress = [];
            bcrypt.hash("hello world", salt, function(err, hash) {
                test.ok(!err);
                test.ok(typeof hash === 'string');
                test.ok(progress.length >= 2);
                test.strictEqual(progress[0], 0);
                test.strictEqual(progress[progress.length-1], 1);
                test.done();
            }, function(n) {
                progress.push(n);
            });
        });
    },

    "promise": function(test) {
        bcrypt.genSalt(10)
        .then(function(salt) {
            bcrypt.hash("hello", salt)
            .then(function(hash) {
                test.ok(hash);
                bcrypt.compare("hello", hash)
                .then(function(result) {
                    test.ok(result);
                    bcrypt.genSalt(/* no args */)
                    .then(function(salt) {
                        test.ok(salt);
                        test.done();
                    }, function(err) {
                        test.fail(err, null, "promise rejected");
                    });
                }, function(err) {
                    test.fail(err, null, "promise rejected");
                });
            }, function(err) {
                test.fail(err, null, 'promise rejected');
            });
        }, function(err) {
            test.fail(err, null, "promise rejected");
        });
    },

    "compat": {
        "quickbrown": function(test) {
            var pass = fs.readFileSync(path.join(__dirname, "quickbrown.txt"))+"",
                salt = bcrypt.genSaltSync(),
                hash1 = binding.hashSync(pass, salt),
                hash2 = bcrypt.hashSync(pass, salt);
            test.equal(hash1, hash2);
            test.done();
        },

        "roundsOOB": function(test) {
            var salt1 = bcrypt.genSaltSync(0), // $10$ like not set
                salt2 = binding.genSaltSync(0);
            test.strictEqual(salt1.substring(0, 7), "$2a$10$");
            test.strictEqual(salt2.substring(0, 7), "$2a$10$");

            salt1 = bcrypt.genSaltSync(3); // $04$ is lower cap
            salt2 = bcrypt.genSaltSync(3);
            test.strictEqual(salt1.substring(0, 7), "$2a$04$");
            test.strictEqual(salt2.substring(0, 7), "$2a$04$");

            salt1 = bcrypt.genSaltSync(32); // $31$ is upper cap
            salt2 = bcrypt.genSaltSync(32);
            test.strictEqual(salt1.substring(0, 7), "$2a$31$");
            test.strictEqual(salt2.substring(0, 7), "$2a$31$");

            test.done();
        }
    }
};

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0041 ]--