Twitter 保护桌面应用程序中的用户密码

Twitter 保护桌面应用程序中的用户密码,twitter,passwords,hash,Twitter,Passwords,Hash,我正在制作一个twitter客户端,我正在评估各种保护用户登录信息的方法 散列显然做不到这一点 以一种可逆的方式混淆就像试图躲在我的手指后面 纯文本听起来很杂乱 要求用户每次都输入密码会让应用程序变得烦人 有什么想法吗?你不能既有蛋糕又吃。要么存储密码(您已排除),要么不存储,并要求每次都输入密码(您已排除)。您可以通过一些操作系统调用为您加密密码 在Windows上: 可以加密文件(在NTFS文件系统上) 使用C中的 通过使用类在.Net中使用DPAPI 什么平台 在*nix上,将密码以

我正在制作一个twitter客户端,我正在评估各种保护用户登录信息的方法

  • 散列显然做不到这一点
  • 以一种可逆的方式混淆就像试图躲在我的手指后面
  • 纯文本听起来很杂乱
  • 要求用户每次都输入密码会让应用程序变得烦人

有什么想法吗?

你不能既有蛋糕又吃。要么存储密码(您已排除),要么不存储,并要求每次都输入密码(您已排除)。您可以通过一些操作系统调用为您加密密码

在Windows上:

  • 可以加密文件(在NTFS文件系统上)
  • 使用C中的
  • 通过使用类在.Net中使用DPAPI
什么平台

在*nix上,将密码以明文形式存储在主目录子目录中的chmoded 400文件中。例如,请参见~/.subversion。不管怎样,管理员可以对用户做任何他们喜欢的事情,包括用他们自己的捕获密码的黑客版本替换你的程序,这样他们就可以看到该文件,这并没有什么害处。请注意,取出硬盘的人也可以访问密码-如果这是一个问题,请让用户每次重新输入密码,或者检查此版本的*nix是否具有文件加密

在Windows Pro上,将密码存储在加密文件中

在Windows上,执行与*nix相同的操作。[编辑:CryptProtectData看起来不错,正如Aleris所建议的。如果它在所有窗口上都可用,那么它只解决了更昂贵的版本支持加密文件的问题]


在Symbian上,将密码存储在数据框架中。具有AllFiles权限的程序很少见,而且被认为是可信的,有点像*nix管理员。

CryptProtectData是windows用于存储此类敏感数据的函数

有关示例,请参见Chrome如何使用它:

如果有一个好的对称加密方案,它应该会使解密凭证变得足够困难,而不值得尝试。 否则,如果服务仅要求通过网络发送哈希,则可以存储已加密的哈希。这样,即使解密也不会让攻击者更接近解决方案。 然而,其他用户是正确的。如果您存储数据,则可以找到它。
关键是在安全性和可用性之间找到平衡。

对于Windows:使用DPAPI(用户存储)加密密码,并将其存储在设置文件或其他地方。这将在每个用户的基础上工作,例如,同一台机器上的不同用户将拥有不同的不相关加密密钥。

为什么哈希不这样做?因为一旦你对密码进行哈希,你就无法恢复密码以便使用它登录。这是一个客户。密码散列是服务器的一种技术。该网站的用户界面使得很难提供有关该问题的详细信息,但是:我没有说明的是,我希望保护用户的数据不受其他同样以相同权限运行的应用程序的影响。有什么线索吗?一个好的对称加密方案只是将密码问题替换为密钥问题。如果该服务在网络上使用散列,那么它就和密码一样好。