Java数据加密存入数据库
在日常的应用程序开发中,对用户的敏感数据进行加密存储是非常重要的安全措施。Java提供了丰富的加密算法库,我们可以利用这些工具来对数据进行加密,然后再存入数据库中。本文将介绍如何使用Java进行数据加密,并将加密后的数据存入数据库。
加密算法
在Java中,常用的加密算法有对称加密和非对称加密两种。对称加密使用相同的密钥进行加密和解密,非对称加密使用公钥加密、私钥解密的方式。在本文中,我们将使用对称加密算法AES进行数据加密。
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESUtil {
private static final String KEY = "mysecretkey12345";
public static String encrypt(String value) {
try {
Cipher cipher = Cipher.getInstance("AES");
SecretKeySpec secretKeySpec = new SecretKeySpec(KEY.getBytes(), "AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
byte[] encrypted = cipher.doFinal(value.getBytes());
return Base64.getEncoder().encodeToString(encrypted);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String decrypt(String value) {
try {
Cipher cipher = Cipher.getInstance("AES");
SecretKeySpec secretKeySpec = new SecretKeySpec(KEY.getBytes(), "AES");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(value));
return new String(decrypted);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
数据存储
接下来,我们将使用上面定义的AESUtil类对数据进行加密,并将加密后的数据存入数据库中。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class DatabaseUtil {
public static void saveEncryptedData(String data) {
String encryptedData = AESUtil.encrypt(data);
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
String query = "INSERT INTO mytable (encrypted_data) VALUES (?)";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1, encryptedData);
pstmt.executeUpdate();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
示意图
下面是使用mermaid语法绘制的饼状图和甘特图示意图:
pie
title Data Distribution
"Data 1": 40
"Data 2": 25
"Data 3": 35
gantt
title Data Processing
dateFormat YYYY-MM-DD
section Encryption
Encrypt Data :done, encrypt1, 2022-01-01, 3d
section Storage
Store Encrypted Data : active, storage1, after encrypt1, 2d
结语
通过本文的介绍,我们了解了如何使用Java进行数据加密,并将加密后的数据存入数据库中。加密算法的选择和数据存储的方式都是非常重要的,只有合理使用加密工具和安全存储数据,才能有效保护用户的隐私信息。希望本文对您有所帮助!