是否可以在本地系统(Windows XP)上存储只能由应用程序本身访问的密码?
我的本能回答是"不".即使使用某种散列或加密,我也会认为只要源代码可用,那么确定的搜索者总是可以使用它来检索密码.
我正在开发一个个人开源爱好项目,我想让用户可以选择在磁盘上存储密码,这样他们每次使用软件时都不需要输入密码.可以存储的密码的一个示例是用于在其网络的代理服务器上进行认证的密码.
Stack Overflow上有一些相关的问题,最合适的解决方案就像使用像DPAPI这样的操作系统服务.
基本前提是否正确,只要软件可以在没有任何用户输入的情况下检索密码,并且源代码是开源的,那么密码总是可以由(在技术上和故意倾斜的)路人可以检索到?
我见过一些网站,尤其是银行网站,要求您输入此信息(例如)。有时他们会要求通过电话证明我的身份。
要做到这一点,散列算法不起作用,是吗?肯定应该像银行一样安全的东西有办法存储不可解密的密码吗?
根据PHP的文档,bcrypt salt是由
"$ 2a $",两位数的成本参数"$",以及字母"./0-9A-Za-z"中的22位数字
因此,如果我使用crypt()函数来哈希我的密码,结果输出包括前七个字符($ 2a $ 10 $,如果10是成本参数)作为盐的一部分 - 并且,根据所有示例我能够在互联网上找到这个完整的输出写入db.
我想知道将剩下的盐和加密数据存储在第一个字符的重点是什么.他们的意思对我来说是完全清楚的,但是我无法理解为什么这些信息应该与哈希的其余部分一起编写.它们不是关于算法的"正义"信息和计算的自适应成本吗?那么存储此类与应用程序相关的信息有什么好处?并且(即使可能听起来很幼稚)为什么要将它们泄露给最终可以抓住我的数据库的攻击者呢?
我正在构建一个Web应用程序,向用户显示他们的Gmail活动(他们最常发送电子邮件的人等)的有趣可视化.显然用户需要给我他的Gmail密码才能使用该应用程序,我想知道我应该如何存储它:
像(3)这样的东西看起来最好,但是(3)我只能在用户登录时同步数据(因为我不知道他的密码在我的应用程序的任何其他时间),这是不理想的.我更喜欢类似Mint.com的解决方案,用户可以随时点击按钮同步Gmail中的数据而无需重新输入密码(任何想法Mint如何在不存储您的银行密码的情况下完成此操作?)
使用您不希望以明文形式存储在数据库中的密码的正确方法是什么?我在NHibernate/Castle ActiveRecord中有哪些选择?
更新: 我对其他人如何处理NHibernate/Castle ActiveRecord感兴趣.如果NHibernate或Castle ActiveRecord中有任何内置功能.
因为我是android应用程序开发的新手..我正在制作一个密码管理器类型的应用程序...所以在第一页上我要求输入用户名和密码以及一个注册按钮。如果一个人是第一次运行应用程序,那么如果他/她忘记了他/她的密码,他/她必须注册并提供用户 ID、密码、安全问题。现在我想保存用户在应用程序中注册时提供的用户名和密码,下次当他/她再次登录并输入用户名和密码时,应用程序应该从保存的用户名和密码中验证它并将其定向到下一页,如果他/她输入了正确的用户名和密码,否则一条消息应该是“不正确的用户名或密码”。
为此,我应该在 Eclipse 中编码什么..?
我已经制作了 xml 文件,即布局..
谢谢
我一直在线阅读MD5不是很安全,我已经决定将我的网站切换到使用SHA512,我之前从未这样做过,所以我只是要求你检查一下我是否做得对,或者是否有另一种更安全的哈希方法可用于存储密码?
$ upass是我需要哈希的用户密码.
这是我与MD5的原始PHP:
 $uname = mysql_real_escape_string($_POST['uname']);
 $sname = mysql_real_escape_string($_POST['sname']);
 $email = mysql_real_escape_string($_POST['email']);
 $upass = md5(mysql_real_escape_string($_POST['pass']));
这是我使用SHA的新PHP:
 $uname = mysql_real_escape_string($_POST['uname']);
 $sname = mysql_real_escape_string($_POST['sname']);
 $email = mysql_real_escape_string($_POST['email']);
 $upass = mysql_real_escape_string($_POST['pass']);
 $upass = hash('SHA512', $upass);
这里也是单词"password"的散列字符串,只是为了确保哈希工作正常.
SHA512:
b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e
MD5:
5f4dcc3b5aa765d61d8327deb882cf99
感谢您提前提供任何帮助/建议.