保存的密码和读取不一致
在mpc8349e中做认证即如果发现保存的密码和读取的不一致....郁闷
保存密码经过加密后为13位保存在passwd_des中
结果读取就读出16位........震精~~~
大家帮忙看看
- int yanzheng(char *des_w) //des_w输入的密码13位
- {
- FILE *fp;
- int i=0;
- char des_r[13];
- fp=fopen("passwd_des","r");passwd_des保存着原先的13位密码
- if(fp==NULL) return 2;
- for(i=0;i<13;i++)
- des_r[i]=fgetc(fp); //就是这里读取的是16位但是我定义的也只有13位啊~~~~
- if(strcmp(des_w,des_r)==0)
- {
- fclose(fp);
- return 1;
- }
- else
- {
- fclose(fp);
- return 0;
- }
- }
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你定义的数组只有13位,怎么可能存放16位?应该不是这里的问题吧。
回复 1# cvnmklop
strcmp函数貌似要在比较的字符串末尾为'\0'时结束吧?你的13位没有'\0'结尾,所以strcmp可能继续往后面的内存比较,那一样的可能性太小了。。。
不知道对不对。
用strncmp()试试