21xrx.com
2024-12-22 22:58:44 Sunday
登录
文章检索 我的文章 写文章
我最喜欢用的Java加密方式
2023-06-10 14:01:25 深夜i     --     --
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。希望这篇文章能对你有所帮助。

  
  

评论区

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