Wie prüfe ich das von Navicat gespeicherte Datenbankpasswort? Der folgende Artikel zeigt Ihnen, wie Sie die gespeicherten Passwörter von Navicat anzeigen können. Ich hoffe, er ist hilfreich für Sie!
Bei der Verwendung von Navicat vergesse ich das Passwort mit der Zeit, was sehr unangenehm ist.
Es gibt jedoch einen Trick, um das von der Navicat-Verbindung gespeicherte Passwort zu überprüfen
Exportieren Sie zuerst die VerbindungExportieren Sie die Verbindung und holen Sie sich die Datei „connections.ncx“
Merken Sie sich hier das Exportkennwort! ! ! Andernfalls enthält die exportierte Datei nicht das verschlüsselte Passwort.
Suchen Sie dann den Wert des Passwortfelds in der Datei. Kopieren Sie es heraus. Beginnen Sie mit der Entschlüsselung des PasswortsDank einer Person, die der große Typ auf Github ein Programm geschrieben hat; Sie können dieses verschlüsselte Passwort direkt knacken. Das Programm ist PHP. Wenn PHP nicht lokal installiert ist, spielt es keine Rolle, finden Sie einfach ein Tool, das online https ausgeführt wird: //tool.lu/coderunner/ Fügen Sie einfach den Code ein
Dann ersetzen Sie den Wert in der vorletzten Zeile durch das verschlüsselte Passwort, das Sie gerade kopiert haben, und führen Sie es dann aus
$decode = $navicatPassword->decrypt('999239DEBFA1960BCCB12566F1F417A6');
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('999239DEBFA1960BCCB12566F1F417A6'); echo $decode."\n";
Verwandte Empfehlungen: Navicat-Tutorial
Das obige ist der detaillierte Inhalt vonEine kurze Analyse, wie verbundene und gespeicherte Passwörter in Navicat angezeigt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!