有没有办法提取TortoiseSVN保存的凭据?
发布于 2011-01-25 22:14:18
简而言之:您可以使用轻松显示缓存的凭据,包括密码。
长篇大论:这个工具是如何工作的。
凭据保存在%APPDATA%\Subversion\auth\
的子目录中。从this previous answer中列出的它们是:
svn.simple
包含基本身份验证的凭据(username/password)svn.ssl.server
包含SSL服务器certificatessvn.username
包含仅用户名身份验证的凭据(不需要密码)第一个目录是您感兴趣的目录。它似乎包含名称类似于GUID的文件;一个文件对应于您为其保存凭据的每个存储库。
这些文件中的密码由Windows Data Protection API加密。上面的工具使用Obviex中的示例代码与此接口对接并执行解密。
为了使其正常工作,您必须有权访问您在选中“保存身份验证”复选框时运行时所使用的同一Windows用户帐户。这是因为Windows数据保护API使用与您的Windows帐户绑定的加密密钥。如果您丢失了此帐户(或者,我相信,如果管理员重置了您的密码),那么您将无法再解密密码(除非使用暴力破解/a third party tool)。拥有一个具有相同用户名/密码(甚至可能是SID的)的新Windows帐户是不够的。
发布于 2010-10-07 23:19:57
根据下面的信息,听起来你可以用某种方式在本地解密它们。
更新:来自TortiseSVN社区的权威答案
当它们通过加密的线路发送时,它们在连接时使用握手和/或商定的密钥进行加密。
当它们在本地存储/读取时,它们会通过Windows Crypto API进行加密/解密,该API使用与您的Windows帐户绑定的密钥。
服务器无法解密本地加密的副本,因为密钥是您帐户的本地密钥。
因此,当您连接(比方说通过HTTPS)时,您的客户端将获得通过适当的Windows API解密的凭据,然后将它们包含在HTTPS传输中。HTTPS使用SSL证书对客户端和服务器之间的整个通信进行加密,而不仅仅是证书。
https://stackoverflow.com/questions/3883129
复制相似问题