我必须在本地将一个用户帐户存储在一台机器上,最好的存储方法是什么? (需要是可逆加密而不是哈希)
我正在访问此处提到的UNC分享: Accessing UNC Share from outside domain for file transfer
使用此建议方法: http://www.codeproject.com/KB/IP/ConnectUNCPathCredentials.aspx
这将是一个自动过程,因此没有人输入凭据的选项。 我目前正在使用TripleDES加密细节并将它们存储在注册表中:
http://www.devarticles.com/c/a/VB.Net/String-Encryption-With-Visual-Basic-.NET/4/
在应用程序中硬编码密钥和初始化向量。
有人可以建议更好的方法或更改以上内容以尽可能保护凭据吗?
答案 0 :(得分:1)
您永远不需要存储用户凭据。如果您的流程需要访问网络共享,则应使用runas
或服务帐户属性在适当的凭据下运行。如果网络凭据不在本地/当前域中,则应使用runas /netonly
。这就是它的全部,没有任何借口,没有例外。
作为旁注,Windows应用程序使用DPAPI在本地存储机密,在.Net中以ProtectedData
类的形式公开。该链接具有使用.Net中的DPAPI加密数据的完整功能示例。但是,重点仍然是即使在DPAPI下,在应用程序中存储用户凭据也是从根本上中断。