21xrx.com
2025-04-27 09:56:11 Sunday
文章检索 我的文章 写文章
Java加密代码详解:实现数据安全加密
2023-06-16 09:43:07 深夜i     10     0
Java 加密算法 AES加密

在今天的信息时代,数据安全已成为一项极为重要的任务。Java加密技术应运而生,在其应用范围不断推广的同时,各大公司和机构纷纷实现了数据加密,以保证数据的安全性。本文将介绍Java加密技术中的常见加密算法和实现,为大家提供一些可供参考的代码案例。

Java提供了许多加密算法,包括常用的对称加密算法和非对称加密算法。在对称加密中,发送方和接收方使用相同的密钥进行加密和解密;而在非对称加密中,加密和解密使用不同的密钥。

下面是一个简单的AES对称加密的Java代码案例:

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class AESUtil {
 
  /**
   * AES加密
   * @param content 待加密内容
   * @param password 加密密码
   * @return 加密后的字节数组
   */
  public static byte[] encrypt(String content, String password) {
    try {
      KeyGenerator kgen = KeyGenerator.getInstance("AES");
      kgen.init(128, new SecureRandom(password.getBytes()));
      SecretKey secretKey = kgen.generateKey();
      byte[] enCodeFormat = secretKey.getEncoded();
      SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
      Cipher cipher = Cipher.getInstance("AES");// 创建密码器
      byte[] byteContent = content.getBytes("utf-8");
      cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
      byte[] result = cipher.doFinal(byteContent);
      return result; // 加密
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }
  /**
   * AES解密
   * @param content 待解密内容
   * @param password 解密密码
   * @return 解密后的字节数组
   */
  public static byte[] decrypt(byte[] content, String password) {
    try {
      KeyGenerator kgen = KeyGenerator.getInstance("AES");
      kgen.init(128, new SecureRandom(password.getBytes()));
      SecretKey secretKey = kgen.generateKey();
      byte[] enCodeFormat = secretKey.getEncoded();
      SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
      Cipher cipher = Cipher.getInstance("AES");// 创建密码器
      cipher.init(Cipher.DECRYPT_MODE, key);// 初始化
      byte[] result = cipher.doFinal(content);
      return result; // 解密
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }
}

在实际使用中,我们可以在程序中调用这些方法来对数据进行加密和解密,并将加密后的数据存储在数据库中,或者通过网络传输。

总体来说,Java加密技术细分的领域有很多,而我们只提到了一些最常见的加密算法的实现。希望本文能够对你的学习和了解有所帮助。

  
  

评论区

请求出错了