昨天的時候,我和露兒把UKEY內部的程序和外部程序做了一下整合。順着他上次寫的日誌,我記錄一下目前的完成情況。他之前UKEY內部實現的是一些“假程序”,只是簡單地返回一些特定長度的數據。這次實現的則是利用USBKEY進行密鑰存儲,身份認證以及某些塊的加解密,並能夠得到正確的結果。
這裏要糾正一個地方,上次日誌裏面說“比較加密前和解密後的文件,大小是一樣的,重點是都可以聽,說明過程成功了。”開始做實驗的是一個MP3文件,解密後也能夠播放,看起來是成功了。但是經過我和露兒昨天的實驗,又用ppt做了一次實驗,發現根本打不開。用“UltraCompare”比較了一下加解密前後的文件,發現很多塊是不一樣的。露兒把java程序認真檢查了一遍,由於預處理部分太複雜,存在一點邏輯錯誤。改過來以後,解密後的文件和源文件一樣。這給後面的工作一個啓發,就是說,當我們想當然得覺得我們作對了的時候,實際上可能就是完全錯誤的東西。
功能 | 文件名 | 參數 | 返回結果 |
獲取標籤 | 0001 | 無 | 20字節 |
比對標籤 | 0002 | 20字節 | 1或0 |
加密 | 0003 | 241字節 | 240字節 |
解密 | 0004 | 241字節 | 240字節 |
返回密鑰 | 0005 | 8字節 | 20字節 |
標籤初始化 | 000A | 8字節 | 存入內部 |
密鑰初始化 | 000B | 8字節 | 存入內部 |
1、無法吐槽這個奇醜無比的界面了。O(∩_∩)O~
2、選擇加密這個文件
3、查看終端信息,密鑰獲取成功。個人標籤獲取也是成功的。並且在軟件端和UKEY的每一塊的加密也完成。
4、生成一個加密後的文件。雖然後綴還是MP3,但是已經無法進行播放。對比兩個文件,基本全部是不一樣的。
5、選擇文件進行解密
6、如果選擇一個其他的文件進行解密,由於標籤驗證時不通過,所以認定不是我們的個人文件。
7、我們驚喜得發現,解密成功
8、三個文件放在一起。分別是源文件,加密後,解密後。
9、源文件和加密後的文件進行比較。完全相同~偶也