因 此,應該在安裝前先檢查一下準備安裝的程式是不是和原本下載的程式一模一樣。CRC32的運作流程是,首先去網路上找一個CRC32的軟體,它可以計算出 你的程式的checksum,然後安裝前再用你自己寫的CRC32程式碼再計算一次當下的程式的checksum, 這兩個checksum如果相同,就代表程式沒有變動過。
用java計算 checksum程式如下:
先要
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
然後如下:
try {
CheckedInputStream cis = null;
cis = new CheckedInputStream(new FileInputStream("/data/test.apk), new CRC32());
byte[] buf = new byte[128];
while(cis.read(buf) >= 0) {
}
checksum = cis.getChecksum().getValue();
} catch (Exception e) {
e.printStackTrace();
}
假設你原本用網路上抓下來的軟體計算出來的checksum是1000,
然後 checksum = cis.getChecksum().getValue(); 這裡計算出來的也是1000,
表示目前這個test.apk和原本提供給使用者的程式是相同的。如果計算出來不是1000,就表示test.apk和當時的程式已經不同了。
沒有留言:
張貼留言