【发布时间】:2020-04-11 10:06:49
【问题描述】:
【问题讨论】:
标签: mysql-workbench password-encryption
【问题讨论】:
标签: mysql-workbench password-encryption
无法在 Windows 上的 MySQL Workbench 中查看存储的密码。该实现使用 Windows 加密 API 并将加密的密码存储在自己的文件中,该文件只能由同一主机上的同一用户解密。
从该保管库中获取密码的唯一解决方案是使用Workbench 也在使用的代码。这需要为此任务编写一个小工具。
【讨论】:
答案可能有点晚,但它可能会帮助其他有同样问题的人。
首先去检查你的加密文件在哪里。通常存储在%AppData%\MySQL\Workbench\workbench_user_data.dat
现在您有了文件位置,打开 powershell 并复制并粘贴以下命令序列(顺序很重要):
$cipher = Get-Content $env:APPDATA\MySQL\Workbench\workbench_user_data.dat -Encoding Byte
回车
$scope = [System.Security.Cryptography.DataProtectionScope]::CurrentUser
回车
$mysqlpwd = [System.Security.Cryptography.ProtectedData]::Unprotect(
$cipher, $null, $scope )
回车
[System.Text.UTF8Encoding]::UTF8.GetString($mysqlpwd)
回车
现在您可以看到以下输出:
Mysql@X:Y@Z#DBUSER#DBPASSWORD
...
ssh@Z:22#SSHUSER#SSHPASSWORD
...
参考资料:
【讨论】:
没有足够的分数来评论 @L.John 的答案,这个答案很有效。只是对这个命令的一个小改动 -
$cipher = Get-Content $env:APPDATA\MySQL\Workbench\workbench_user_data.dat -Encoding Byte
改为运行它
$cipher = 获取内容 $env:APPDATA\MySQL\Workbench\workbench_user_data.dat -AsByteStream
参考https://github.com/PowerShell/GPRegistryPolicyParser/issues/5
【讨论】: