posts - 2,  comments - 0,  trackbacks - 0
            2010年11月23日
              KEY采用的是求一個(gè)字符串的SHA1值(160bit)賦給一個(gè)int型數(shù)組int KEY[5]作為OTP生成方法的的參數(shù)輸入。輸入的字符串不可以超過16,通過判斷字符串長度提醒用戶輸入的KEY是否合法。將輸入的字符串通過Tochar方法法轉(zhuǎn)換成一個(gè)16元素的char型數(shù)組,然后再轉(zhuǎn)換成一個(gè)整形數(shù)組,對于長度小于16的空余元素則補(bǔ)零。調(diào)用SHA1類中的dofinal方法產(chǎn)生160bit數(shù)據(jù)作為一個(gè)5元素的int型數(shù)組作為OTP參數(shù)。
          posted @ 2010-11-23 12:28 趙朋川 閱讀(294) | 評論 (0)編輯 收藏
              OTP的counter為一個(gè)long型64位數(shù)據(jù),每次產(chǎn)生一個(gè)新OTP后,counter值做自加一處理。此程序的counter采用android中輕量級存儲(chǔ)sharedpreference進(jìn)行保存。首先建立存儲(chǔ)文件夾,在文件夾下建立名為COUNTER的存儲(chǔ)變量,在調(diào)用OTP產(chǎn)生程序時(shí),首先將COUNER的值從文件夾中讀出,為一個(gè)String類型,利用命令Long.parseLong()方法將其轉(zhuǎn)換為long型整數(shù)作為OTP程序的參數(shù)參與運(yùn)算,然后COUNTER自加,轉(zhuǎn)換成String類型后保存到輕量級存儲(chǔ)文件夾中的COUNTER內(nèi),為下次調(diào)用準(zhǔn)備。
              在重置counter的程序中,將TextView中的值利用gettext()命令讀出,利用toString命令轉(zhuǎn)換成String類型后存儲(chǔ)在COUNTER中。對于輸入的整數(shù)值不能超過Long型整數(shù)的范圍,在存儲(chǔ)之前需要對輸入的整數(shù)進(jìn)行相關(guān)判斷:將輸入的整數(shù)前面補(bǔ)零和2的64次方減一(18446744073709551615)進(jìn)行字符串比較,如果輸入的整數(shù)大或者字符串長度超過20則提醒用戶輸入錯(cuò)誤,重新輸入。
          posted @ 2010-11-23 12:17 趙朋川 閱讀(156) | 評論 (0)編輯 收藏
          僅列出標(biāo)題  
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 克山县| 牙克石市| 林甸县| 新泰市| 东乡县| 儋州市| 诸暨市| 都匀市| 垣曲县| 宿迁市| 应用必备| 门源| 怀柔区| 乌苏市| 辽中县| 长乐市| 嘉善县| 舟曲县| 上栗县| SHOW| 勐海县| 启东市| 辽宁省| 白河县| 吉安市| 延边| 邛崃市| 金坛市| 腾冲县| 收藏| 吉安县| 江津市| 乌拉特中旗| 屯昌县| 合阳县| 宜君县| 潼关县| 黄陵县| 区。| 喀喇| 玉溪市|