AES文件加密 Java

在信息安全领域,加密算法是保护数据安全的重要手段之一。其中,AES(Advanced Encryption Standard)是一种对称加密算法,它可以用来对数据进行加密和解密。在Java中,我们可以使用AES算法对文件进行加密,以确保文件的安全性。

AES加密算法

AES算法是一种块加密算法,它将数据分成固定大小的块,然后对每个块进行加密。在AES算法中,密钥长度可以是128位、192位或256位,这里我们以128位密钥为例。

AES文件加密代码示例

下面是一个简单的Java程序示例,用于对文件进行AES加密:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.Key;

public class AESEncryption {
    private static final String key = "mysecretkey12345";
    
    public static void encryptFile(String inputFile, String outputFile) {
        try {
            Key secretKey = new SecretKeySpec(key.getBytes(), "AES");
            Cipher cipher = Cipher.getInstance("AES");
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
            
            FileInputStream in = new FileInputStream(inputFile);
            FileOutputStream out = new FileOutputStream(outputFile);
            
            byte[] inputBytes = new byte[64];
            int bytesRead;
            while ((bytesRead = in.read(inputBytes)) != -1) {
                byte[] outputBytes = cipher.update(inputBytes, 0, bytesRead);
                if (outputBytes != null) {
                    out.write(outputBytes);
                }
            }
            
            byte[] outputBytes = cipher.doFinal();
            if (outputBytes != null) {
                out.write(outputBytes);
            }
            
            in.close();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        encryptFile("input.txt", "encrypted.txt");
    }
}

在上面的代码中,我们定义了一个encryptFile方法,用于对输入文件进行AES加密,并将加密后的内容写入输出文件中。我们使用了128位的密钥mysecretkey12345。在main方法中,我们调用encryptFile方法对input.txt文件进行加密。

状态图

stateDiagram
    [*] --> Encryption
    Encryption --> [*]

关系图

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE-ITEM : contains
    CUSTOMER }|..| CUSTOMER : aggregates
    ORDER }|..| ORDER : aggregates

AES算法作为一种成熟的加密算法,在信息安全领域得到广泛应用。通过使用Java语言,我们可以轻松实现对文件的AES加密,从而提高文件的安全性。希望这篇文章可以帮助读者更好地理解AES文件加密的原理和实现方式。