21xrx.com
2025-03-26 02:16:29 Wednesday
文章检索 我的文章 写文章
我最喜欢用的Java加密方式
2023-06-10 14:01:25 深夜i     16     0
Java加密算法 Base64 AES RSA

我最喜欢用的Java加密方式

作为一名Java开发人员,我经常需要考虑如何保护用户数据。这就需要使用Java加密算法来加强数据安全。在我的工作中,我发掘了几个最好用的Java加密方式,它们非常简单易懂,同时也很有效。

第一个是Base64加密算法。Base64可以将任意长度的二进制数据编码成纯文本格式。该算法通过将数据流的每3个字节组成一个字符数组,然后不断地进行编码。基于Base64实现的加密方法非常常见,我们可以在Java中轻松实现。

import java.util.Base64;
import java.nio.charset.StandardCharsets;
public class Base64Encryptor {
  public static String encrypt(String input) {
    String encodedString = Base64.getEncoder().encodeToString(
        input.getBytes(StandardCharsets.UTF_8));
    return encodedString;
  }
}

这段代码可以将字符串转换为Base64编码的字符串。

第二个加密方式是AES算法。AES是一种高级加密标准,它被广泛用于数据加密。在Java中,我们可以使用JCE库轻松地实现。让我们看看下面的代码。

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AESEncryptor {
  public static String encrypt(String input, String key, String iv) throws Exception {
    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");
    SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
    IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes("UTF-8"));
    cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivSpec);
    byte[] encrypted = cipher.doFinal(input.getBytes());
    return new String(Base64.getEncoder().encode(encrypted), "UTF-8");
  }
}

这段代码可以将输入文本加密成AES CBC模式的密码。

第三个加密方式是RSA算法。RSA是一种非对称加密算法,它可以用于数字签名和数据加密。在Java中,我们可以使用KeyPairGenerator轻松地生成公钥和私钥。接下来,我们可以使用Cipher库来对数据进行加密和解密。

import javax.crypto.Cipher;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
public class RSAEncryptor {
  public static byte[] encrypt(byte[] publicKey, byte[] inputData) throws Exception {
    Cipher cipher = Cipher.getInstance("RSA");
    KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair();
    cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic());
    return cipher.doFinal(inputData);
  }
}

这段代码可以使用RSA公钥加密数据。

总的来说,Java加密方式很多,我们可以根据我们的需求设置不同的加密算法。在我的工作中,我最喜欢的加密方式是Base64、AES和RSA。希望这篇文章能对你有所帮助。

  
  

评论区

    相似文章