thaicosmic.com

หนัง

วันพุธที่ 10 มกราคม พ.ศ. 2567

NavicatPassword

Credit : https://www.codetd.com/en/article/9767627


<?php


namespace FatSmallTools;


class NavicatPassword

{

    protected $version = 0;

    protected $aesKey = 'libcckeylibcckey';

    protected $aesIv = 'libcciv libcciv ';

    protected $blowString = '3DC5CA39';

    protected $blowKey = null;

    protected $blowIv = null;

    

    public function __construct($version = 12)

    {

        $this->version = $version;

        $this->blowKey = sha1('3DC5CA39', true);

        $this->blowIv = hex2bin('d9c7c3c8870d64bd');

    }

    

    public function encrypt($string)

    {

        $result = FALSE;

        switch ($this->version) {

            case 11:

                $result = $this->encryptEleven($string);

                break;

            case 12:

                $result = $this->encryptTwelve($string);

                break;

            default:

                break;

        }

        

        return $result;

    }

    

    protected function encryptEleven($string)

    {

        $round = intval(floor(strlen($string) / 8));

        $leftLength = strlen($string) % 8;

        $result = '';

        $currentVector = $this->blowIv;

        

        for ($i = 0; $i < $round; $i++) {

            $temp = $this->encryptBlock($this->xorBytes(substr($string, 8 * $i, 8), $currentVector));

            $currentVector = $this->xorBytes($currentVector, $temp);

            $result .= $temp;

        }

        

        if ($leftLength) {

            $currentVector = $this->encryptBlock($currentVector);

            $result .= $this->xorBytes(substr($string, 8 * $i, $leftLength), $currentVector);

        }

        

        return strtoupper(bin2hex($result));

    }

    

    protected function encryptBlock($block)

    {

        return openssl_encrypt($block, 'BF-ECB', $this->blowKey, OPENSSL_RAW_DATA|OPENSSL_NO_PADDING); 

    }

    

    protected function decryptBlock($block)

    {

        return openssl_decrypt($block, 'BF-ECB', $this->blowKey, OPENSSL_RAW_DATA|OPENSSL_NO_PADDING); 

    }

    

    protected function xorBytes($str1, $str2)

    {

        $result = '';

        for ($i = 0; $i < strlen($str1); $i++) {

            $result .= chr(ord($str1[$i]) ^ ord($str2[$i]));

        }

        

        return $result;

    }

    

    protected function encryptTwelve($string)

    {

        $result = openssl_encrypt($string, 'AES-128-CBC', $this->aesKey, OPENSSL_RAW_DATA, $this->aesIv);

        return strtoupper(bin2hex($result));

    }

    

    public function decrypt($string)

    {

        $result = FALSE;

        switch ($this->version) {

            case 11:

                $result = $this->decryptEleven($string);

                break;

            case 12:

                $result = $this->decryptTwelve($string);

                break;

            default:

                break;

        }

        

        return $result;

    }

    

    protected function decryptEleven($upperString)

    {

        $string = hex2bin(strtolower($upperString));

        

        $round = intval(floor(strlen($string) / 8));

        $leftLength = strlen($string) % 8;

        $result = '';

        $currentVector = $this->blowIv;

        

        for ($i = 0; $i < $round; $i++) {

            $encryptedBlock = substr($string, 8 * $i, 8);

            $temp = $this->xorBytes($this->decryptBlock($encryptedBlock), $currentVector);

            $currentVector = $this->xorBytes($currentVector, $encryptedBlock);

            $result .= $temp;

        }

        

        if ($leftLength) {

            $currentVector = $this->encryptBlock($currentVector);

            $result .= $this->xorBytes(substr($string, 8 * $i, $leftLength), $currentVector);

        }

        

        return $result;

    }

    

    protected function decryptTwelve($upperString)

    {

        $string = hex2bin(strtolower($upperString));

        return openssl_decrypt($string, 'AES-128-CBC', $this->aesKey, OPENSSL_RAW_DATA, $this->aesIv);

    }

}



use FatSmallTools\NavicatPassword;


//需要指定版本,11或12

//$navicatPassword = new NavicatPassword(12);

$navicatPassword = new NavicatPassword(11);


//解密

//$decode = $navicatPassword->decrypt('15057D7BA390');

$decode = $navicatPassword->decrypt('73EFB530B74DCCE359F34539742ECD9E8D1FE826F5C263CE');

echo $decode."\n";

วันอังคารที่ 28 พฤศจิกายน พ.ศ. 2566

jhcisbackup20231128

 # !/bin/sh


    /usr/local/mysql/bin/mysqldump --skip-comments --default-character-set=utf8 --routines --lock-tables=false --compatible=no_key_options -u root -pnhc03301 jhcisdb > /home/jhcis/Desktop/jhcisdb-backup-tmp/jhcisdb-03301.$(date -d "+0 day" "+%Y-%m-%d").sql


cd /home/jhcis/Desktop/jhcisdb-backup-tmp/


FILE1=jhcisdb-03301.$(date -d "+0 day" "+%Y-%m-%d").sql


if [ -f "$FILE1" ]; then


     sudo zip -r jhcisdb-03301.$(date -d "+0 day" "+%Y-%m-%d").zip "$FILE1"


fi


FILE2=jhcisdb-03301.$(date -d "+0 day" "+%Y-%m-%d").zip


     sudo cp /home/jhcis/Desktop/jhcisdb-backup-tmp/$FILE2 /home/jhcis/Google\ Drive/jhcisbackup/



cd /home/jhcis/Google\ Drive/jhcisbackup/



if [ -f "$FILE2" ]; then


     sudo rm -f /home/jhcis/Google\ Drive/jhcisbackup/jhcisdb-03301.$(date -d "-0 day" "+%Y-%m-%d").sql


     sudo rm -f /home/jhcis/Google\ Drive/jhcisbackup/jhcisdb-03301.$(date -d "-32 day" "+%Y-%m-%d").zip


     sudo rm -f /home/jhcis/Google\ Drive/jhcisbackup/jhcisdb-03301.$(date -d "-33 day" "+%Y-%m-%d").zip


fi

วันพฤหัสบดีที่ 27 กรกฎาคม พ.ศ. 2566

MySQL Ver.5.6.45

MySQL Ver.5.6.45 ต้องทำพิธีเบิกเนตร ไม่งั้น ลูกๆมองหาแม่ไม่เจอ

===

CREATE USER 'root'@'%' IDENTIFIED BY '123456';

GRANT GRANT OPTION ON *.* TO 'root'@'%';

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE ON *.* TO 'root'@'%';

GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `jhcisdb`.* TO 'root'@'%';

GRANT GRANT OPTION ON `jhcisdb`.* TO 'root'@'%';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;