提取TortoiseSVN保存的密码

Jus*_*s12 121 svn tortoisesvn forgot-password

有没有办法提取TortoiseSVN保存的凭证?

rka*_*rer 223

简短回答:您可以使用TortoiseSVN Password Decrypter轻松显示您的缓存凭据,包括密码.

答案很长:这是该工具的工作原理.

凭据保存在子目录中%APPDATA%\Subversion\auth\.从之前的答案中列出它们是:

  • svn.simple 包含基本身份验证的凭据(用户名/密码)
  • svn.ssl.server 包含SSL服务器证书
  • svn.username 包含仅用户名验证的凭据(无需密码)

第一个目录是感兴趣的目录.它似乎包含名称看起来像GUID的文件; 为您保存凭据的每个存储库一个.

这些文件中的密码由Windows Data Protection API加密.上面的工具使用Obviex的示例代码与此API接口并执行解密.

为了使其正常工作,当您勾选"保存身份验证"复选框时,您必须能够访问您在其下运行的同一Windows用户帐户.这是因为Windows Data Protection API使用与Windows帐户绑定的加密密钥.如果你失去了这个帐户(或者,我相信,如果管理员重置您的密码),那么你将不再能够(除了解密密码可能通过使用蛮力/ A 第三方工具).拥有一个具有相同用户名/密码(或者甚至可能是SID)的新Windows帐户是不够的.


Aar*_*ver 8

根据下面的信息,听起来你可以用某种方式在本地解密它们......

更新: TortiseSVN社区的最终答案

当它们通过加密的线路发送时,它们在连接时使用握手和/或商定的密钥加密.

当它们在本地存储/读取时,它们通过Windows Crypto API加密/解密,后者使用与Windows帐户绑定的密钥.

服务器无法解密本地加密的副本,因为密钥是您帐户的本地密钥.

因此,当您连接(假设通过HTTPS)时,您的客户端将通过适当的Windows API获取解密的凭据,然后将其包含在HTTPS传输中.HTTPS 使用SSL证书加密客户端和服务器之间的整个通信,而不仅仅是凭据.