保存的密码和读取不一致

发布于 2022-10-15 09:22:59 字数 1304 浏览 21 评论 0

在mpc8349e中做认证即如果发现保存的密码和读取的不一致....郁闷
保存密码经过加密后为13位保存在passwd_des中
结果读取就读出16位........震精~~~
大家帮忙看看

  1. int yanzheng(char *des_w) //des_w输入的密码13位
  2. {
  3.         FILE *fp;
  4.         int i=0;
  5.         char des_r[13];
  6.         fp=fopen("passwd_des","r");passwd_des保存着原先的13位密码
  7.         if(fp==NULL) return 2;
  8.         for(i=0;i<13;i++)
  9.            des_r[i]=fgetc(fp); //就是这里读取的是16位但是我定义的也只有13位啊~~~~
  10.         if(strcmp(des_w,des_r)==0)
  11.         {
  12.                   fclose(fp);
  13.                   return 1;
  14.         }
  15.         else
  16.         {
  17.                 fclose(fp);
  18.                 return 0;
  19.         }
  20. }

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

离旧人 2022-10-22 09:22:59

你定义的数组只有13位,怎么可能存放16位?应该不是这里的问题吧。

薄荷港 2022-10-22 09:22:59

回复 1# cvnmklop

    strcmp函数貌似要在比较的字符串末尾为'\0'时结束吧?你的13位没有'\0'结尾,所以strcmp可能继续往后面的内存比较,那一样的可能性太小了。。。
   不知道对不对。

烟织青萝梦 2022-10-22 09:22:59

回复  cvnmklop

    strcmp函数貌似要在比较的字符串末尾为'\0'时结束吧?你的13位没有'\0'结尾,所以 ...
cokeboL 发表于 2011-04-21 12:40

    用strncmp()试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文