ホームページ > データベース > navicat > Navicat で接続および保存されたパスワードを表示する方法の簡単な分析

Navicat で接続および保存されたパスワードを表示する方法の簡単な分析

青灯夜游
リリース: 2022-03-30 11:17:13
転載
14118 人が閲覧しました

Navicat接続して保存したデータベースのパスワードを確認するには? Navicat に保存されているパスワードを確認する方法については、次の記事でご紹介しますので、お役に立てれば幸いです。

Navicat で接続および保存されたパスワードを表示する方法の簡単な分析

Navicat を使用するときは、パスワードを保存するのが習慣です。時間が経つと、データベースのパスワードを忘れてしまいます。これは非常に不快です。

しかし、ここにあります。裏技として、navicat 接続によって保存されたパスワードを表示できます

最初に接続をエクスポートします

接続をエクスポートし、connections.ncx ファイルを取得します

Navicat で接続および保存されたパスワードを表示する方法の簡単な分析#ここでエクスポートのパスワードを覚えておいてください。 ! !それ以外の場合、エクスポートされたファイルには暗号化されたパスワードが含まれていません

Navicat で接続および保存されたパスワードを表示する方法の簡単な分析

#ファイル内のパスワード フィールドの値を見つけます

彼をコピーしてください

Navicat で接続および保存されたパスワードを表示する方法の簡単な分析

パスワードの解読を開始します

偉い人に感謝します書き込み用に Github にプログラムがあります。暗号化されたパスワードを直接解読できます。

プログラムは PHP です。PHP がローカルにインストールされていない場合でも、問題はありません。オンラインで実行できるツールを見つけてください https:/ /tool.lu/coderunner/

コードを貼り付けるだけです

最後から 2 行目の値をコピーした暗号化されたパスワードに置き換えて実行します

1

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

ログイン後にコピー

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

<!--?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(&#39;999239DEBFA1960BCCB12566F1F417A6&#39;);

echo $decode."\n";

ログイン後にコピー

関連する推奨事項: Navicat で接続および保存されたパスワードを表示する方法の簡単な分析navicat チュートリアル

以上がNavicat で接続および保存されたパスワードを表示する方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート