在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
对象对输入字节进行加密,最后将加密后的字节写入输出文件。
请注意,这只是一个简单的示例,实际中需要根据具体需求和安全要求进行更多的处理和调整。另外,还需要实现解密的功能来还原原始图片。