首页 > 解决方案 > C crypt() 函数,不同的密码,相同的哈希

问题描述

下面的代码为不同但相似的单词生成相同的哈希。这是否意味着用户可以键入类似的密码并获得访问权限?

hi  = crypt("academics", "50");
hii = crypt("academicians", "50");

printf ("academics : %s\n", hi);
printf ("academicians : %s\n", hii);

printf ("string compare : %d\n", strcmp(hi,hii));

输出 :

academics      : 50IlqAh9rdDJo
academicians   : 50IlqAh9rdDJo
string compare : 0

标签: cencryptioncs50crypt

解决方案


它们crypt的功能使用您作为参数传递的密钥的前 8 个字符中每个字符的最低 7 位,以生成用于加密的密钥。


推荐阅读