在Spring Boot中,可以使用Java的加密庫來對用戶上傳的圖片進行加密。一種常見的做法是使用Java的AES加密算法來加密圖片文件。以下是一個簡單的示例代碼:
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class ImageEncryption {
private static final String key = "MySecretKey12345"; // 16 characters secret key
public static void encryptImage(File inputFile, File outputFile) {
try {
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
FileInputStream inputStream = new FileInputStream(inputFile);
byte[] inputBytes = new byte[(int) inputFile.length()];
inputStream.read(inputBytes);
byte[] outputBytes = cipher.doFinal(inputBytes);
FileOutputStream outputStream = new FileOutputStream(outputFile);
outputStream.write(outputBytes);
inputStream.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
File inputFile = new File("input.jpg");
File encryptedFile = new File("encrypted.jpg");
encryptImage(inputFile, encryptedFile);
System.out.println("Image encrypted successfully!");
}
}
在上面的示例中,我們定義了一個encryptImage
方法來加密圖片文件。首先,我們使用16字符的密鑰創建一個SecretKeySpec
對象,并使用AES算法初始化Cipher
對象。然后我們讀取輸入文件的內容,使用Cipher
對象對輸入字節進行加密,最后將加密后的字節寫入輸出文件。
請注意,這只是一個簡單的示例,實際中需要根據具體需求和安全要求進行更多的處理和調整。另外,還需要實現解密的功能來還原原始圖片。