从本地缓存中恢复 SVN 密码

Posted

技术标签:

【中文标题】从本地缓存中恢复 SVN 密码【英文标题】:Recover SVN password from local cache 【发布时间】:2011-08-20 03:18:49 【问题描述】:

有没有办法从本地缓存中恢复密码?密码必须存储在某个地方,因为我可以运行

svn co http://my.svn.server/foo

但我自己丢失了密码。我必须重置它还是可以(以及如何)找到和解密密码?我在 Windows 上主要使用 CLI SVN,有时会切换到 TortoiseSVN 或 IntelliJ Idea SVN。

【问题讨论】:

Extract TortoiseSVN saved password. 的可能重复项 这不是重复的,TortoiseSVN 是与 svn 不同的软件,可能以完全不同的方式缓存密码。 @StephenPaulger 不,是的。如果您查看这两个问题的答案,您会发现它们都在谈论完全相同的文件和完全相同的工具。 【参考方案1】:

~/.subversion/auth/svn.simple/ 中,您应该找到一个具有长十六进制名称的文件。密码是明文的。

如果有多个文件,您需要找到一个引用您需要密码的服务器的文件。

【讨论】:

存储在svn.simple中的密码自Subversion 1.6开始加密。 我的参考 gnome-keyring 但在我的密钥环中看不到任何相关内容 如果您参考了 gnome-keyring,您的密码可能会简单地存储为“网络密码”。【参考方案2】:

在 Windows 上,Subversion 将身份验证数据存储在 %APPDATA%\Subversion\auth 中。然而,密码是加密存储的,而不是明文。

您可以解密这些内容,但前提是您以保存身份验证数据的同一用户身份登录 Windows。

甚至有人写了一个工具来解密这些。我自己从未尝试过该工具,所以我不知道它的效果如何,但您可能还是想尝试一下:

http://www.leapbeyond.com/ric/TSvnPD/

更新:在 TortoiseSVN 1.9 及更高版本中,您无需任何额外工具即可完成:

Settings Dialog -> Saved Data,然后点击文本“Authentication Data”右侧的“Clear...”按钮。将弹出一个新对话框,显示所有存储的身份验证数据,您可以在其中选择要清除的数据。不要清除,而是按住 ShiftCtrl 按钮,然后在列表中按住 double click。对话框中会显示一个新列,以明文形式显示密码。

【讨论】:

链接的程序也适用于通过 Eclipse 创建和管理的 repo。从这个意义上说,该程序的名称有点误导。 是的,这个名字有误导性。默认情况下,IntelliJ 也使用此位置。似乎他的位置是为所有 svn 客户共享的。 @Stefan - 我已经尝试了上面的 TSvnPD 并且能够找回密码。谢谢 设置对话框 -> 保存的数据等。提示对我有用(我不能只在工作中下载软件)。谢谢! “设置对话框”变体是多么绝对、非常疯狂。我想知道是谁想出这样隐藏它的想法。以及为什么。无论如何感谢过去。【参考方案3】:

对于那些对 OS X 解决方案感兴趣的人,比如 Intelli-J,授权由 OSX 存储:

    按 CMD+空格键 键入“钥匙串” 打开钥匙串访问 在左侧的“钥匙串”下,选择“登录” 在右侧的“类别”下,选择“所有项目” 在搜索框的右上角,输入主机 URL(例如 svn.mycompany.com) 如果您选择让 Mac 记住您的登录凭据,您的钥匙串项目将会显示。 双击该项目并选中弹出对话框底部的“显示密码”复选框。您必须输入您的 Mac 登录信息才能显示密码。

比尝试解密密码要容易得多:-)

【讨论】:

这是一个保护程序!谢谢。 哇,以前不知道这个。非常感谢!【参考方案4】:

您在 Ubuntu (12.04) 中的 SVN 密码位于:

~/.subversion/auth/svn.simple/

但是在较新的版本中,正如前面有人提到的那样,它们是加密的。要查找 gnome-keyring 密码,建议您使用“gkeyring”程序。

要在 Ubuntu 上安装它 - 添加存储库:

sudo add-apt-repository ppa:kampka/ppa
sudo apt-get update

安装它:

sudo apt-get install gkeyring

然后运行如下:

gkeyring --id 15 --output=name,secret

尝试使用不同的密钥 ID 来找到与您正在寻找的匹配的配对。感谢 kampka 的软文。

【讨论】:

在 Ubuntu 上,使用默认的 Passwords and Keys 实用程序来显示您的所有密码就足够了。我非常惊讶那里存储了多少用户帐户和密码!帮助找出忘记的 SVN 密码。【参考方案5】:

只需使用此解密器即可解密您本地缓存的用户名和密码。

默认情况下,TortoiseSVN 将缓存的凭据存储在 %APPDATA%\Subversion\auth\svn.simple 目录中的文件中。密码使用 Windows 数据保护 API 加密,密钥与您的用户帐户相关联。此工具读取文件并使用 API 解密您的密码

svn password decryptor

【讨论】:

这个是最简单的

以上是关于从本地缓存中恢复 SVN 密码的主要内容,如果未能解决你的问题,请参考以下文章

微信小游戏开发实战11:使用本地缓存

kali28 提权——读取windows本地密码

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来3 —— 本地缓存变身分布式集群缓存,打破本地缓存天花板

缓存方案:本地guavaCache, 远程redis?

js本地缓存的几种方法

没有作者颠覆 svn 提交