posts - 2,  comments - 0,  trackbacks - 0
  2010年11月23日
    KEY采用的是求一个字符串的SHA1值(160bit)赋给一个int型数组int KEY[5]作为OTP生成方法的的参数输入。输入的字符串不可以超过16,通过判断字符串长度提醒用户输入的KEY是否合法。将输入的字符串通过Tochar方法法转换成一个16元素的char型数组,然后再转换成一个整形数组,对于长度小于16的空余元素则补零。调用SHA1类中的dofinal方法产生160bit数据作为一个5元素的int型数组作为OTP参数。
posted @ 2010-11-23 12:28 赵朋川 阅读(275) | 评论 (0)编辑 收藏
    OTP的counter为一个long型64位数据,每次产生一个新OTP后,counter值做自加一处理。此程序的counter采用android中轻量级存储sharedpreference进行保存。首先建立存储文件夹,在文件夹下建立名为COUNTER的存储变量,在调用OTP产生程序时,首先将COUNER的值从文件夹中读出,为一个String类型,利用命令Long.parseLong()方法将其转换为long型整数作为OTP程序的参数参与运算,然后COUNTER自加,转换成String类型后保存到轻量级存储文件夹中的COUNTER内,为下次调用准备。
    在重置counter的程序中,将TextView中的值利用gettext()命令读出,利用toString命令转换成String类型后存储在COUNTER中。对于输入的整数值不能超过Long型整数的范围,在存储之前需要对输入的整数进行相关判断:将输入的整数前面补零和2的64次方减一(18446744073709551615)进行字符串比较,如果输入的整数大或者字符串长度超过20则提醒用户输入错误,重新输入。
posted @ 2010-11-23 12:17 赵朋川 阅读(133) | 评论 (0)编辑 收藏
仅列出标题  
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜