crypt(text,"k7")

我看着它显然'k7'是盐,但是我不知道这意味着什么也不是什么类型的输出来,有谁知道?

有帮助吗?

解决方案

从href="http://linux.die.net/man/3/crypt" rel="noreferrer">隐窝曼页的

  

<强>描述

     

隐窝()是密码加密   功能。它是基于数据   加密标准算法   意变化(其他之间   事情)劝阻使用的硬件   一键搜索的实现。

     

键是用户的键入的密码。

     

盐是选择了两个字符的字符串   从集合[a-zA-Z0-9./]。这个   串是用于扰乱算法在4096中的一个不同的方式。

其他提示

所有其他的答案是正确的,但迄今为止没有人解释 为什么 盐是存在的。

维基百科有一个良好的网页上 彩虹表, ,这是主要原因为什么我们有盐。

没有盐、窝基本上是一个单向散列函数。这将需要在一个密码和返回哈希版本的密码。 Rainbow 表格提供一个优化的方法击败"一个方式"性质这一散列,并且支持的原始密码。

如果你能得到的散列密码(通过的一些数据库的利用,或者访问 /etc/passwd/etc/shadow 文件),理论上可以知道很多人的密码。

盐中添加一个额外的"随意"因素的组合。你需要创建一个随机盐和商店的地方(密码是确定的,但独立的是更好)。现在一个设的彩虹表是不够的,你突然需要65,536个组这样的表(在的情况下一个两字节的盐)。盐能也能保持单独的密码,增加一个额外的障碍。

盐也有助于防止用户使用同一个密码看起来像有同一密码;盐通常是随机选择的,并且如果盐是不同的散列密码将大大不同。

我还将指出该项解释某些 密码基础知识, 我发现了内容非常丰富。

正如Randolpho指出的,它是文本的单向散列过程。

对于隐窝标准使用()是在存储密码。显然,存储密码以明文形式将是非常不明智的。相反,隐窝()被用于生成密码的散列。当你在密码输入时,隐窝()被应用到,然后将两个散列进行比较。

基本上,隐窝()的功能是将文本转换成一些新的文本,从该原始永远无法恢复翻译,但其具有生成相同的散列为两个不同的密钥的概率很低。

维基百科 FTW

底线:它单向散列text

C使用手册 - 隐窝

  

在隐窝函数使用一个密码,密钥,作为一个字符串,以及在下面描述盐字符数组,并返回其与另一种盐开始打印的ASCII字符串。据认为,鉴于该函数的输出,找到将产生输出,直到关键的原始值被发现猜测键的值的键的最佳方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top