当前位置:首页 » 安卓系统 » android时间同步

android时间同步

发布时间: 2024-06-20 22:51:46

⑴ 如何用android开发otp

otp从技术来分有三种形式, 时间同步、事件同步、挑战/应答。
(1) 时间同步
原理是基于 动态令牌和 动态口令验证服务器的时间比对,基于 时间同步的 令牌,一般每60秒产生一个新口令,要求服务器能够十分精确的保持正确的时钟,同时对其令牌的晶振频率有严格的要求,这种技术对应的终端是硬件令牌。
(2)事件同步
基于事件同步的令牌,其原理是通过某一特定的事件次序及相同的种子值作为输入,通过HASH算法中运算出一致的密码。
(3)挑战/应答
常用于的网上业务,在网站/应答上输入 服务端下发的 挑战码, 动态令牌输入该挑战码,通过内置的算法上生成一个6/8位的随机数字,口令一次有效,这种技术目前应用最为普遍,包括刮刮卡、短信密码、动态令牌也有挑战/应答形式。

主流的动态令牌技术是时间同步和挑战/应答两种形式。
项目采用:
https://code.google.com/p/androidtoken/ 实现TOTP动态口令登录
android token 该项目支持HOTP (事件令牌)和TOTP (时间令牌)规范
配置令牌支持:KeyUriFormat和QR码,以及手动创建;

项目实现:
我这里采用添加方便的qr码,也就是常见的二维码来实现用户通过手机来绑定一个token;
首先,需要有的就是服务器端和客户端都共有的一个seed。

private final static String NUM_CHAR = "0123456789";

private static int charLen = NUM_CHAR.length();

/**

* 根据系统时间获得指定位数的随机数

* @param randomNumberDigit 随机数的位数

* @return 获得的随机数

*/

public static String getRandomNumber(int randomNumberDigit) {

long seed = System.currentTimeMillis();// 获得系统时间,作为生成随机数的种子

StringBuffer sb = new StringBuffer();// 装载生成的随机数

Random random = new Random(seed);// 调用种子生成随机数

for (int i = 0; i < randomNumberDigit; i++) {

sb.append(NUM_CHAR.charAt(random.nextInt(charLen)));

}

return sb.toString();

}

⑵ android系统怎么同步网络时间

进入设置,点击时间设置,选择网络提供的时间。

先设置手机时间同步,打开设置中心(以红米手机MIUI 8系统为例)。

选择更多设置(以红米手机MIUI 8系统为例,其它手机系统位置不同),点击日期和时间。

选中自动确定日期和时间,自动确定时区,选择24小时格式,设置完成。

电脑设置时间步骤:XP和WIN系统时间显示位置相同,电脑任务栏最右侧,双击时间(以XP系统设置为例)

打开日期和时间属性面板,点击Internet 时间选项。

勾选与internet时间服务器同步,选择任何一个服务器都可以。

选择time.windows.com服务器,点击立即更新。电脑时间同步完成。

热点内容
cocos2d30编译 发布:2024-10-25 17:20:51 浏览:993
app直播平台源码 发布:2024-10-25 17:19:57 浏览:223
asp文件上传带进度条 发布:2024-10-25 17:19:54 浏览:656
mp4反编译软件 发布:2024-10-25 16:47:33 浏览:998
哪个是提升电脑帧数的配置 发布:2024-10-25 16:43:45 浏览:95
以一种访问权限不允许的方式 发布:2024-10-25 16:38:32 浏览:404
嵌入式linux开发环境搭建 发布:2024-10-25 16:26:51 浏览:325
奥迪a4l乞丐版什么配置 发布:2024-10-25 16:20:33 浏览:411
python读取txt文件数据 发布:2024-10-25 16:07:36 浏览:23
获取局域网服务器的真实ip 发布:2024-10-25 16:01:36 浏览:28