Rumah >pangkalan data >navicat >Analisis ringkas tentang cara melihat kata laluan yang disambungkan dan disimpan dalam Navicat

Analisis ringkas tentang cara melihat kata laluan yang disambungkan dan disimpan dalam Navicat

青灯夜游
青灯夜游ke hadapan
2022-03-02 10:59:5613950semak imbas

Bagaimana untuk menyemak kata laluan pangkalan data yang disimpan oleh Navicat? Artikel berikut akan memperkenalkan kepada anda cara melihat kata laluan yang disimpan oleh navicat saya harap ia akan membantu anda!

Analisis ringkas tentang cara melihat kata laluan yang disambungkan dan disimpan dalam Navicat

Apabila menggunakan Navicat, saya lazimnya menyimpan kata laluan lama-kelamaan, saya akan terlupa kata laluan pangkalan data, yang sangat tidak selesa

Tetapi, inilah silap mata, anda boleh melihat kata laluan yang disimpan oleh sambungan navicat

Eksport sambungan dahulu

Eksport sambungan untuk mendapatkan fail connections.ncx

Analisis ringkas tentang cara melihat kata laluan yang disambungkan dan disimpan dalam Navicat

Ingat kata laluan eksport di sini! ! ! Jika tidak, fail yang dieksport tidak mengandungi kata laluan yang disulitkan

Analisis ringkas tentang cara melihat kata laluan yang disambungkan dan disimpan dalam Navicat

Kemudian cari nilai medan kata laluan dalam fail

Salin dia

Analisis ringkas tentang cara melihat kata laluan yang disambungkan dan disimpan dalam Navicat

Mulakan mentafsir kata laluan

Terima kasih kepada seorang lelaki besar Github untuk menulis Saya mempunyai program; anda boleh terus memecahkan kata laluan yang disulitkan

Program ini adalah PHP jika PHP tidak dipasang secara tempatan, tidak mengapa, cari sahaja alat yang berjalan dalam talian https://; tool.lu/coderunner/

Hanya tampal kod

Kemudian gantikan nilai dalam baris kedua hingga terakhir dengan kata laluan yang disulitkan yang baru anda salin, dan kemudian jalankannya

$decode = $navicatPassword->decrypt('999239DEBFA1960BCCB12566F1F417A6');

Analisis ringkas tentang cara melihat kata laluan yang disambungkan dan disimpan dalam Navicat

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(&#39;999239DEBFA1960BCCB12566F1F417A6&#39;);
echo $decode."\n";

Cadangan berkaitan: tutorial navicat

Atas ialah kandungan terperinci Analisis ringkas tentang cara melihat kata laluan yang disambungkan dan disimpan dalam Navicat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:cnblogs.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam