Transferred from https://github.com/DoubleLabyrinth/how-does-navicat-encrypt-password
Transferred from https://github.com/DoubleLabyrinth/how-does-navicat-encrypt-password
This repo will tell you how Navicat encrypts password and offer a tool to reveal passwords encrypted by Navicat.
Navicat is a series of graphical database management and development software produced by PremiumSoft CyberTech Ltd. for MySQL, MariaDB, Oracle, SQLite, PostgreSQL and Microsoft SQL Server.
It has an Explorer-like graphical user interface and supports multiple database connections for local and remote databases. Its design is made to meet the needs of a variety of audiences, from database administrators and programmers to various businesses/companies that serve clients and share information with partners.
If you use Navicat to manage one of your databases, the first thing you should do is to create a connection to the database. So that means you should fill textboxes on the window showed below with the database's information like Host name, User name, Password and so on.
If you check "Save Password", after you click "Ok" button, Navicat will encrypt the password and then save the connection configuration, containing encrypted password, in Windows Registry. The exact path is showed below:
| Database Type | Path |
|---|---|
| MySQL | HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\`` |
| MariaDB | HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\`` |
| MongoDB | HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMONGODB\Servers\`` |
| Microsoft SQL | HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\`` |
| Oracle | HKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\`` |
| PostgreSQL | HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\`` |
| SQLite | HKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\`` |
The following is an example:
See here.
Please make sure you have Python3.
Please make sure you have following packages if you want to use navicat-cipher.py and ncx-dump.py:
cryptography
pywin32 // required if you want to get navicat_cred from Windows Credential Manager automaticallyYou can install them via command:
$ pip install cryptography pywin32Please make sure that you have package pywin32 if you want to use show-navicat.py.
You can install package pywin32 via command:
$ pip install pywin32navicat-cipher.py
usage: navicat-cipher.py enc [-h] (-v1 | -v2 | -v3) [--cred CRED] PASSWD
positional arguments:
PASSWD the password in plaintext
options:
-h, --help show this help message and exit
-v1 use v1 algorithm
-v2 use v2 algorithm
-v3 use v3 algorithm
--cred CRED the value of navicat_cred, which is used by -v3usage: navicat-cipher.py dec [-h] (-v1 | -v2 | -v3) [--cred CRED] PASSWD
positional arguments:
PASSWD the password in ciphertext
options:
-h, --help show this help message and exit
-v1 use v1 algorithm
-v2 use v2 algorithm
-v3 use v3 algorithm
--cred CRED the value of navicat_cred, which is used by -v3Example:
…ncx-dump.py
Show database servers' information inside *.ncx file.
usage: ncx-dump.py [-h] FILE
positional arguments:
FILE path to .ncx file
options:
-h, --help show this help message and exitExample:
…show-navicat.py
Just run it on Windows.
It will list all Navicat configurations stored in Windows Registry.
Example:
…No open issues yet, or sync has not completed.