美文网首页
防止Android用户篡改手机时间

防止Android用户篡改手机时间

作者: 曾经的你呀 | 来源:发表于2017-10-30 11:25 被阅读168次

本文地址:http://www.jianshu.com/p/47d4944196d2 [FBI WARMING]

背景

项目的打卡模块要求服务器挂了,网络不好但能定位的时候也能打卡,打卡时间客户端确定,先缓存本地,有网络后上传服务器,就是打卡时间是要客户端确定的。那么问题就来了,有个小伙伴把手机调后半个小时切了网络后提前下班了

一种防止Android 篡改手机时间的方法

大概是想就是在某个一个时刻获取服务器时间,记录此时 服务器时间和距离开机的时间,someServerTime和someBootedTime。那么在某个时刻T 的真实时间就是先算出T 时刻和someBootedTime 的时间差SystemClock.elapsedRealtime()-someBootedTime;也就是:

long period = SystemClock.elapsedRealtime() -someBootedTime;
long nowTime= someServerTime + period;

关于SystemClock.elapsedRealtime()

它是系统启动到当前时刻经过的时间,包括了系统睡眠经过的时间。现在大部分的手机都有重启和关机,那么重启和关机后获取的SystemClock.elapsedRealtime() 有什么不同呢?当然有的

简单来说,手机开关机和电脑类似,是对硬件的状态进行检测,关机时系统和硬件全部关闭。再开机则再次检测所有硬件情况,然后重新加载所有数据。

而重启是手机软件层面的重新启动,并不涉及硬件,它会使系统自动跳过开关机时需要执行的很多步骤,直接进入操作系统。

Android 手机一般都有关机和重启的选项,iphone 其实也有,重启 长安电源和Home 按键大于10秒就是强制重启(这个重启和Android 的重启是不是一个东西就不知道了)

所以SystemClock.elapsedRealtime() 在两种情况的区别就不言而喻了!

不知道有没有遇到SystemClock.elapsedRealtime() 跑久了不准确的情况?

还会遇到的问题

因为这种方法还是有一联网校准的过程,所以还是有一个缺陷,那就是要验证手机重启后是否完成校准。我们要保证有网状态下重启时间精确校准;重启后打卡的时候发现时间没有校准再校准一次基本就无问题了。

More ,没有GPS不开Wi-Fi也可能被高精度定位

多说一句看下面的图我相信大家会相信没有GPS,不开Wi-Fi也可能被高精度定位的,我们的打卡就算没开GPS权限,不连接Wi-Fi也能高精度定位,上传了电话基站的ID。所以某些情况下Android 手机的位置隐私是不容易隐藏的,手机基站ID 都能拿到,iOS好像拿不到

没GPS,没有Wi-Fi被高精度定位?.png

需要代码?

不要了吧,要的话给我买2杯咖啡

相关文章

  • 防止Android用户篡改手机时间

    本文地址:http://www.jianshu.com/p/47d4944196d2 [FBI WARMING...

  • 长治西收费站收费系统信息化管理办法

    为加强长治西收费站收费系统信息安全,防止用户账号、密码、系统信息泄漏,防止涉密信息被非法复制、窃取、篡改,规范管理...

  • iOS 时间校准

    今天接到一个很有意思的需求。消息需要同步,需要时间校准,防止用户恶意篡改时间或无网络情况下定位准确时间。在网上找了...

  • Android签名机制

    文章摘要 为何需要Android签名 防止APK被恶意篡改后,二次签名打包。 基本概念 1.数据摘要:本质上是一种...

  • Android签名文件

    在Android应用程序打包成Apk的过程中,为防止生成的Apk被篡改,需要进行签名,生成一个签名包。在Apk的M...

  • 又有人来通俗讲解 HTTPS 了

    为什么要用 HTTPS HTTP 是明文传输,任何人都能窃听到,甚至篡改。 HTTPS 可以有效防止窃听和篡改,能...

  • 接口统一鉴权

    背景简述 为了保障用户的数据安全,所有对外开放的接口须使用统一鉴权的方式,为了防止API调用过程中被恶意篡改,调用...

  • 接口签名实现

    接口安全问题 防止篡改 防止重放timestamp+nonce方案 签名流程 签名规则 签名生成请求参数的拼接请求...

  • 现在的智能手机真的有必要使用线性马达吗?

    在手机上安装振动电机的目的是发出振动,提醒用户手机中有信息接入,防止用户在手机静音、无法感知短信和来电情况时错过重...

  • Android 防止用户恶意疯狂点击

    哥们点个赞再走呀 制作不容易,条件允许情况下,打赏一下,谢谢 项目build.gradle 加入作者的依赖,其中用...

网友评论

      本文标题:防止Android用户篡改手机时间

      本文链接:https://www.haomeiwen.com/subject/cqjppxtx.html