为什么密码盐被称为“盐”?

68

“salt”在密码中有什么重要意义吗?


很难说这是否相关,但在我十几岁时,我曾在UPS担任包裹装载员。每个进入卡车的箱子都应该是相同的区号,但主管会将箱子“盐”到错误的邮政编码,以确保我们注意力集中。 - Eric_WVGG
8个回答

52

也许是因为盐能很好地搭配哈希


48

http://www.derkeiler.com/Newsgroups/comp.security.misc/2003-05/0154.html

"盐"一词的使用可能是对古代战争的一个参照,当时人们会用盐腌制井水或农田,使其不那么适宜生存。罗马人据说在公元前146年这样做过卡塔赫,但实际上没有确凿证据。在密码的环境中,“加盐”密码更难以破解。

显然,即使是最初的盐渍卡塔赫的主张也没有强有力的证据(http://en.wikipedia.org/wiki/Salting_the_earth),但仍是一个有趣的假说。


3
感谢您提供链接,不过我对其正确性表示怀疑(并非历史方面,而是与密码学的关系)。 - Jon B
8
历史是否正确实际上与技术术语的词源无关。我不知道谁发明了"Salt"这个术语,他们在发明时在想什么,但很可能他们在思考一个历史典故时出现了错误。就像有人说"作者将这个程序称为乔治,因为它从不撒谎,就像乔治·华盛顿一样",你可以证明乔治·华盛顿曾经撒过谎,并不能证明那不是产品名称的来源。 - Jay

26

这里的意思是在对密码进行哈希之前,你需要添加一些东西,就像在餐食中加盐一样 :-)


这是我猜测的,但从未找到任何权威的支持。你能引用一些来源吗? - erickson
我现在手头没有任何资源。那只是我从一些时间以前阅读的文本中得出的感知。 - Leopold Cimrman

15

根据首次在书籍中使用该术语的Ken Thompson所说,这个词与“给矿加盐”这个词相关,指的是金矿。是否正确谁知道呢?我怀疑这并没有一个真正正确的答案,它只是那些不需要理由只要理解其含义就可以的术语之一。


有趣。你能详细解释一下吗?"盐矿"是什么意思呢? - erickson
1
这意味着人为地在矿中添加金来使其看起来像金矿。不确定这与密码学中盐的目的直接相关,但其他也没有太多关联。 - Gerald
4
当然有一个正确答案。我的意思是,一定有人首先使用了这个术语,他肯定有某些原因认为它合适。话虽如此,我不知道谁发明了它或他当时在想什么。可能是一些清晰而富有洞察力的东西,也可能只是他在吃午餐时想到这个想法,并且在寻找称呼时注意到桌子前面的盐瓶。(技术术语的起源可能比这更不显著。参见“googol”和“quark”。) - Jay

7
我猜是因为添加“盐”(NaCl或固定字符串)很容易。但一旦添加,输出结果就无法更改(食品、加密密码)。

3
如果你放一个土豆,它会去掉盐分。 http://wiki.answers.com/Q/How_do_you_remove_salt_from_food_when_you're_cooking - Stefano Borini

6

2
因为在对密码进行哈希之前,你会向其中添加一段随机文本。因此,它看起来像是在原始的“食物”(密码)中加入了一些“盐”... :)

2

一旦你在食物中加盐,真正的味道就不再显现。所以基本上这是一个比喻,加点盐就改变了原始的菜肴。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接