有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    假设你知道如何从互联网上获取一次以毫秒为单位的当前时间

    public class TrustedTime {
        private static long internetTime;
        private static long updateTime;
    
        /** this needs to happen once */
        public static void updateInternetTime(long time) {
            updateTime = SystemClock.elapsedRealtime();
            internetTime = time;
        }
    
        public static long currentTimeMillis() {
            long sinceUpdate = SystemClock.elapsedRealtime() - updateTime;
            return internetTime + sinceUpdate;
        }
    }
    

    这只是一个简单的数学问题,计算互联网时间有效时与现在之间的差异

    但是如果你真的需要信任时间,那就不要使用客户时间。你不能信任客户端软件。当你上传东西时,有一个服务器有一个用户不能篡改的本地可信时间,用它代替。换句话说,不需要为客户机发送时间戳,因为服务器知道当前时间