Rumah > pangkalan data > navicat > teks badan

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

青灯夜游
Lepaskan: 2022-03-30 11:17:13
ke hadapan
13905 orang telah melayarinya

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');
Salin selepas log masuk

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";
Salin selepas log masuk

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!

Label berkaitan:
sumber:cnblogs.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!