| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 791 人关注过本帖
标题:关于系统时间获取问题
取消只看楼主 加入收藏
tangqang_han
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-6-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
关于系统时间获取问题
编写了一个基于年月加密的程序,程序按月来使用密码。
目前遇到一个漏洞,比如6月密码文件已经提供,到了7月应该用新的密码文件,程序才能运行,可是程序有一个BUG,可以将系统时间暂时改成6月,等密码文件验证成功后,再改成7月。
我在程序头部加入了一个验证条件,就是每次验证完密码重新执行时,需要验证月份是否与核对密码时一致。

大神如果忙,上面的内容可以忽略,问题的关键:
定义两个变量,存储当前的月份,修改系统月份后,重新获取月份,但是这个月份仍然是之前获取的那个,不会变化,为什么呢?
yea=(ptr->tm_year+1900);            //年
mou=(ptr->tm_mon+1);                //月
day=ptr->tm_mday;                //日
hou=ptr->tm_hour;                //获取时钟
min=ptr->tm_min;                //获取分钟,时钟与分钟都为全局变量,调用函数进行转换。
sec=ptr->tm_sec;                //秒
check_mou=mou;                //当前获取的月份,赋值到check_mou.

/****
程序运行,在此时,系统月份发生了更改
***/
mou=(ptr->tm_mon+1);        //重新获取月份
if(check_mou!=mou)          //如果月份发生修改,此时check_mou 与 mou应该是不相等的。但是结果却是相等的,为什么呢?要怎么改?
{
goto pw_check;
}
搜索更多相关主题的帖子: 加密 密码 
2017-06-04 16:13
快速回复:关于系统时间获取问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011973 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved