SpringBoot怎么对用户上传的图片加密

1949idc 2年前 (2024-09-10) 阅读数 503 #智能运维

在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对象对输入字节进行加密,最后将加密后的字节写入输出文件。

请注意,这只是一个简单的示例,实际中需要根据具体需求和安全要求进行更多的处理和调整。另外,还需要实现解密的功能来还原原始图片。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业