C crypt()在md5模式下无法正常工作?

时间:2012-11-15 18:03:40

标签: c crypt

我在c中第一次使用crypt()函数。我刚刚运行了一些初始测试,因此实际上并没有使用这些测试,特别是恒定的盐值。 :)

我运行以下代码:

crypt(password, "$1$k7de83ka7");

根据我对crypt文档的理解,这个提供的salt值应该指定crypt()在MD5模式下运行,这将产生格式为“$ 1 $”的哈希。 $ 1 $指定使用MD5进行哈希处理的值。这就是我理解它应该起作用的方式。

但是,当我测试上面的代码时,返回的值是“$ 1ciFuWRySk3A”,所以它似乎缺少一个'$'字符。我做错了导致这个问题吗?

1 个答案:

答案 0 :(得分:1)

crypt(password, "$1$k7de83ka7");

我认为您没有正确地调用crypt,请参见手册页:

  

如果salt是以字符“$ id $”开头的字符串   后跟一个以“$”结尾的字符串 $ id $ salt $ encrypted

然后id标识加密方法。

你不应该指望它返回一个包含$(不一定)

的字符串
  

成功时,返回指向加密密码的指针。上   错误,返回NULL。