21xrx.com
2024-11-25 05:07:05 Monday
登录
文章检索 我的文章 写文章
Java加密代码详解:实现数据安全加密
2023-06-16 09:43:07 深夜i     --     --
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加密技术细分的领域有很多,而我们只提到了一些最常见的加密算法的实现。希望本文能够对你的学习和了解有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复