如何在 Windows 10 上从 MySQL Workbench 获取忘记的 MySQL 密码?

bjo*_*101 14 mysql-workbench password-encryption

这个问题本质上与这个问题相同,但适用于 Windows 10。

在此输入图像描述

我检查了文档,仍然没有明确的答案。一步步查看密码将是完美的,并且非常感激!

小智 36

首先去检查你的加密文件在哪里。通常它存储在%AppData%\MySQL\Workbench\workbench_user_data.dat

现在您已经知道了文件位置,打开 powershell 并复制并粘贴以下命令序列(顺序很重要):

$cipher = Get-Content $env:APPDATA\MySQL\Workbench\workbench_user_data.dat -AsByteStream -Raw
Run Code Online (Sandbox Code Playgroud)

按回车键

$scope = [System.Security.Cryptography.DataProtectionScope]::CurrentUser
Run Code Online (Sandbox Code Playgroud)

按回车键

$mysqlpwd = [System.Security.Cryptography.ProtectedData]::Unprotect(
    $cipher, $null, $scope )
Run Code Online (Sandbox Code Playgroud)

按回车键

[System.Text.UTF8Encoding]::UTF8.GetString($mysqlpwd)
Run Code Online (Sandbox Code Playgroud)

按回车键

现在您可以看到以下输出:

Mysql@X:Y@Z#DBUSER#DBPASSWORD
...
ssh@Z:22#SSHUSER#SSHPASSWORD
...
Run Code Online (Sandbox Code Playgroud)

如果您收到 TypeNotFound 错误:

无法找到类型 [System.Security...]。

您可能还需要运行以下命令才能访问“System.Security”

Mysql@X:Y@Z#DBUSER#DBPASSWORD
...
ssh@Z:22#SSHUSER#SSHPASSWORD
...
Run Code Online (Sandbox Code Playgroud)

参考:

  • 传奇 - 谢谢你。您可能必须添加以下内容才能访问 System.Security.Cryptography.ProtectedData:“Add-Type -AssemblyName System.Security” (13认同)

Mik*_*hke -1

无法在 Windows 上的 MySQL Workbench 中查看存储的密码。该实现使用 Windows 加密 API 并将加密的密码存储在自己的文件中,该文件只能由加密密码所在的同一主机上的同一用户解密。

从该保管库中获取密码的唯一解决方案是使用Workbench也在使用的代码。这需要为这项任务编写一个小工具。