OTP的counter為一個long型64位數(shù)據(jù),每次產(chǎn)生一個新OTP后,counter值做自加一處理。此程序的counter采用android中輕量級存儲sharedpreference進(jìn)行保存。首先建立存儲文件夾,在文件夾下建立名為COUNTER的存儲變量,在調(diào)用OTP產(chǎn)生程序時,首先將COUNER的值從文件夾中讀出,為一個String類型,利用命令Long.parseLong()方法將其轉(zhuǎn)換為long型整數(shù)作為OTP程序的參數(shù)參與運(yùn)算,然后COUNTER自加,轉(zhuǎn)換成String類型后保存到輕量級存儲文件夾中的COUNTER內(nèi),為下次調(diào)用準(zhǔn)備。
在重置counter的程序中,將TextView中的值利用gettext()命令讀出,利用toString命令轉(zhuǎn)換成String類型后存儲在COUNTER中。對于輸入的整數(shù)值不能超過Long型整數(shù)的范圍,在存儲之前需要對輸入的整數(shù)進(jìn)行相關(guān)判斷:將輸入的整數(shù)前面補(bǔ)零和2的64次方減一(18446744073709551615)進(jìn)行字符串比較,如果輸入的整數(shù)大或者字符串長度超過20則提醒用戶輸入錯誤,重新輸入。
posted on 2010-11-23 12:17
趙朋川 閱讀(147)
評論(0) 編輯 收藏