Maison > Article > base de données > Une brève analyse de la façon d'afficher les mots de passe connectés et enregistrés dans Navicat
Comment vérifier le mot de passe de la base de données enregistré par Navicat ? L'article suivant vous expliquera comment afficher les mots de passe enregistrés de Navicat. J'espère qu'il vous sera utile !
Lorsque j'utilise Navicat, j'enregistre habituellement le mot de passe. Au fil du temps, j'oublie le mot de passe de la base de données, ce qui est très inconfortable.
Cependant, il existe une astuce pour vérifier le mot de passe enregistré par la connexion Navicat.
Exportez d'abord la connexionExportez la connexion et obtenez le fichier connections.ncx
N'oubliez pas le mot de passe d'exportation ici ! ! ! Sinon, le fichier exporté ne contiendra pas le mot de passe crypté
Recherchez ensuite la valeur du champ mot de passe dans le fichierCopiez-le
Commencez à déchiffrer le mot de passeGrâce à une personne Le grand gars de Github a écrit un programme ; vous pouvez directement déchiffrer ce mot de passe crypté
Le programme est PHP ; si PHP n'est pas installé localement, ce n'est pas grave, il suffit de trouver un outil qui s'exécute en ligne https : //tool.lu/coderunner/ Collez simplement le code dessusRemplacez ensuite la valeur de l'avant-dernière ligne par le mot de passe crypté que vous venez de copier, puis exécutez-le$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";
Recommandations associées : tutoriel navicat
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!