文件 SHA-256 加密
parent
f27d8cdb7d
commit
8981f0f168
|
@ -35,7 +35,10 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.math.BigInteger;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
@ -250,6 +253,9 @@ public class VideoServiceImpl implements VideoService {
|
|||
String filePath = localPath + File.separator + "D:\\uploadVideo" + File.separator + filename;
|
||||
// 创建本地文件对象
|
||||
File localFile = new File(filePath);
|
||||
// 计算文件的 SHA-256 哈希值(比MD5加密更安全)
|
||||
String fileMD5 = calculateFileSHA256(localFile);
|
||||
System.out.println(fileMD5);
|
||||
// 检查目录是否存在,如果不存在则创建
|
||||
File localDirectory = localFile.getParentFile();
|
||||
if (!localDirectory.exists()) {
|
||||
|
@ -305,6 +311,29 @@ public class VideoServiceImpl implements VideoService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* SHA-256
|
||||
* @param file
|
||||
* @return
|
||||
*/
|
||||
private static String calculateFileSHA256(File file) {
|
||||
try {
|
||||
MessageDigest digest = MessageDigest.getInstance("SHA-256");
|
||||
FileInputStream fis = new FileInputStream(file);
|
||||
byte[] buffer = new byte[8192];
|
||||
int bytesRead;
|
||||
while ((bytesRead = fis.read(buffer)) != -1) {
|
||||
digest.update(buffer, 0, bytesRead);
|
||||
}
|
||||
byte[] hashBytes = digest.digest();
|
||||
BigInteger hashValue = new BigInteger(1, hashBytes);
|
||||
return hashValue.toString(16);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发布视频
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue