-
-
Notifications
You must be signed in to change notification settings - Fork 405
/
DefaultFileEncryptor.java
49 lines (43 loc) · 1.29 KB
/
DefaultFileEncryptor.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.xuexiang.xupdate.proxy.impl;
import android.text.TextUtils;
import com.xuexiang.xupdate.logs.UpdateLog;
import com.xuexiang.xupdate.proxy.IFileEncryptor;
import com.xuexiang.xupdate.utils.Md5Utils;
import java.io.File;
/**
* 默认的文件加密计算使用的是MD5加密
*
* @author xuexiang
* @since 2019-09-06 14:21
*/
public class DefaultFileEncryptor implements IFileEncryptor {
/**
* 加密文件
*
* @param file 目标文件
* @return 文件的加密值
*/
@Override
public String encryptFile(File file) {
return Md5Utils.getFileMD5(file);
}
/**
* 检验文件是否有效(加密是否一致)
*
* @param encrypt 加密值, 如果encrypt为空,直接认为是有效的
* @param file 需要校验的文件
* @return 文件是否有效
*/
@Override
public boolean isFileValid(String encrypt, File file) {
if (TextUtils.isEmpty(encrypt)) {
return true;
}
String fileEncrypt = encryptFile(file);
boolean result = encrypt.equalsIgnoreCase(fileEncrypt);
if (!result) {
UpdateLog.d("File verification failed! Target encrypt value is: " + encrypt + ", but file encrypt value is: " + fileEncrypt);
}
return result;
}
}