我一直在搜索,但仍然不确定“盐”是什么以及如何使用/实现它。对不起这个问题,我是自学php。
我绝对不是专家,但是真正简短的答案是“涂一行”文本意味着在其末尾添加一些额外的字符。您可以将“ salt”和“ abcdefg”加盐以获得“
saltabcdefg”。如果“盐”恰好是您想要使其更难猜测的密码,则这可能很有用。
通常,密码+盐会通过一些难以逆转的过程转换(“散列”)为完全不同的字符串。然后,将这个转换后的字符串与salt的纯文本一起存储为密码,然后丢弃正确的密码的原始纯文本。当您想检查某人是否输入了正确的密码时,可以将他们键入的内容与密码文件中列出的salt结合起来,然后对结果进行哈希处理。如果结果与您记录的密码哈希匹配,那么您知道它们已经输入了正确的密码。
实施盐的操作很简单,只需选择一个字符串作为盐,然后确保对其进行跟踪即可。但是,您可以随每个密码更改盐,然后必须有一种跟踪密码+盐组合以及生成变体的方法。当然,您可能还希望对密码进行哈希处理,而不是保存密码的纯文本,因此,您必须选择哈希函数。在这一点上,问题已经从适当的解决发展到实施密码安全方案。
对于PHP,您可能想看看某些框架是如何实现的。两个快速链接,分别用于CakePHP和Zend:
http://www.jotlab.com/2010/04/18/cakephp-rainbow-table-protection-
behaviour/
http://www.zimuel.it/blog/2009/07/build-a-secure-login-with-zend-
framework/
问题内容: 什么是空指针异常,什么原因导致它们? 可以使用哪些方法/工具确定原因,以阻止异常导致程序过早终止? 问题答案: 声明引用变量(即对象)时,实际上是在创建指向对象的指针。考虑以下代码,在其中声明基本类型的变量int: 在此示例中,变量是an ,Java会0为你初始化它。当你10在第二行为其分配值时,你的值将写入所指的存储位置x。 但是,当你尝试声明引用类型时,会发生一些不同的事情。采取以
问题内容: 请解释以下有关Spring中的异常的信息: 这是什么意思? 在什么情况下会抛出? 我该如何预防? 问题答案: 当询问a找不到其定义的bean实例时引发异常。这可能指向不存在的bean,不唯一的bean或没有关联的bean定义的手动注册的单例实例。 A 基本上是代表Spring的容器反转的抽象。它在内部和外部向你的应用程序公开bean。当找不到或检索到这些bean时,将抛出。 以下是一个
问题内容: 我正在阅读有关该功能的信息。问题是我仍然无法理解其用法。据我所知的唯一的事情是相同调用。 我不明白这本书何时提到你如何在运行时不知道其名称的情况下如何使用它来获取对函数的引用。总的来说,也许这是我在编程方面的菜鸟。谁能给这个问题一些启发?我什么时候以及如何使用它? 问题答案: 完全等同于。 有只有两个原因使用它: 你无法编写,因为你事先不知道想要哪个属性(它来自字符串)。对于元编程非常
问题内容: 我正在使用cython为数学模型生成更快的代码。我很难编译代码,但是以某种方式设法使用.bat做到了: 运行正常… 我的问题是关于pyximport。我有其他人使用pyximport.install()编写的旧代码。我无法弄清楚它的作用以及为什么要使用它,因为我已经在自己编译代码了。因此,有人可以以非常简单的方式(对于虚拟对象)向我解释pyximport的作用吗? 附加信息:我有一个使
我所知道的关于排字的只是它们以某种方式取代了舱单。互联网上的信息很少,不能给我提供一个很好的主题意识。 因此,如果有人分享一些关于排字的有用材料的链接,包括示例和流行的用例,我会很高兴的。也欢迎详细的解答和解释。
问题内容: 我有以下代码: 当我在Python shell中运行它时,它返回: 我已经搜索过了,这似乎叫做列表理解,但是它如何工作? 问题答案: 我有以下代码: 当我在Python shell中运行它时,它返回: 我已经搜索过了,这似乎叫做列表理解,但是它如何工作?