什么是注销HTTP身份validation保护的文件夹的正确方法? 有解决方法可以实现这一点,但它们有潜在的危险,因为它们可能是有问题的,或者在某些情况/浏览器中不起作用。 这就是为什么我正在寻找正确和干净的解决scheme。
更新:我最近从这个问题中得知,在下面的整个讨论中,我(我确信其他人也是)也有点混乱:我一直称之为彩虹表,实际上称为哈希表。 彩虹表是更复杂的生物,实际上是Hellman哈希链的变种。 虽然我相信答案仍然是一样的(因为它不能归结为密码分析),但是有些讨论可能有些偏差。 这个问题:“ 什么是彩虹桌,他们是如何使用的? ” 通常情况下,我总是build议使用密码强的随机值作为盐,与散列函数(例如密码)一起使用,以防止彩虹表攻击。 但是,盐是随机的,它实际上是密码学上必要的吗? 任何独特的价值(唯一的每个用户,例如userId)在这方面就足够了? 它实际上会阻止使用单个彩虹表来破解系统中的所有(或大部分)密码。 但熵的缺乏是否真的削弱了哈希函数的密码强度呢? 请注意,我不是问为什么要使用盐,如何保护它(不需要),使用单个常量散列(不),或使用什么样的散列函数。 盐是否需要熵。 感谢所有答案到目前为止,但我想专注于我(一点)不太熟悉的领域。 密码分析的主要影响 – 我会很感激,如果有人有一些来自encryptionmathPoV的input。 另外,如果还有额外的vector没有被考虑,那也是很好的input(参见@Dave Sherohman指向多个系统)。 除此之外,如果您有任何理论,想法或最佳实践 – 请以证据,攻击情景或经validation据作为背景。 或者甚至是可以接受的权衡的有效考虑…我对这个问题上的最佳实践(资本B资本P)很熟悉,我想certificate这实际上提供了什么价值。 编辑:这里有一些非常好的答案,但我认为@Dave说,它归结为彩虹表的常见用户名称…也可能不太常用的名称。 但是,如果我的用户名是全球唯一的呢? 不一定是我的系统唯一的,但每个用户 – 例如电子邮件地址。 对于单个用户来说,build立RT是没有任何意义的(正如@Dave强调的那样,盐不是保密的),这仍然会阻止集群。 唯一的问题是,我可能会在不同的网站上有相同的电子邮件和密码 – 但盐无论如何不会阻止。 所以,它回到了密码分析 – 熵是必要的,还是不是? (我目前的想法是从密码分析的angular度来看没有必要,但是这是出于其他实际的原因)。
我只是学习使用SQLite,我很好奇,如果这是可能的: 数据库文件的encryption? 密码保护数据库的开放? PS。 我知道有这个“SQLiteencryption扩展(SEE)”,但根据文档,“SEE是许可软件….”和“SEE的永久源代码许可证的成本是2000美元”。
我偶尔会听到“使用bcrypt在PHP中存储密码,bcrypt规则”的build议。 但是什么是bcrypt ? PHP不提供任何这样的function,维基百科关于文件encryption实用程序的喋喋不休,Websearch只是揭示了几种不同语言的Blowfish实现。 现在Blowfish也可以通过mcrypt通过PHP获得,但是这对于存储密码有什么帮助? 河豚是一个通用的密码,它有两种方式。 如果可以encryption,则可以解密。 密码需要单向散列函数。 什么是解释?
我需要从标准输入读取密码,并希望std::cin不要回显用户键入的字符… 我怎样才能禁用从std :: cin的回声? 这里是我目前使用的代码: string passwd; cout << "Enter the password: "; getline( cin, passwd ); 我正在寻找一种操作系统不可知的方式来做到这一点。 这里有两种方法可以在Windows和* nix中执行此操作。