java加密解密算法-代码示例

ThinkPhpchengxu

温馨提示:这篇文章已超过287天没有更新,请注意相关的内容是否还可用!

Java提供了丰富的加密解密算法库,可以用于保护敏感数据的安全性。其中常用的加密解密算法有对称加密算法和非对称加密算法。

对称加密算法使用相同的密钥进行加密和解密,加密速度快,适合对大量数据进行加密。Java中常用的对称加密算法有AES、DES和DESede。

示例代码如下所示,使用AES算法进行加密和解密:

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

import java.util.Base64;

public class SymmetricEncryptionExample {

public static void main(String[] args) throws Exception {

String plainText = "Hello, World!";

String key = "abcdefghijklmnop";

// 加密

byte[] encryptedBytes = encrypt(plainText, key);

String encryptedText = Base64.getEncoder().encodeToString(encryptedBytes);

System.out.println("加密后的文本:" + encryptedText);

// 解密

byte[] decryptedBytes = decrypt(encryptedBytes, key);

String decryptedText = new String(decryptedBytes);

System.out.println("解密后的文本:" + decryptedText);

}

public static byte[] encrypt(String plainText, String key) throws Exception {

SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");

Cipher cipher = Cipher.getInstance("AES");

cipher.init(Cipher.ENCRYPT_MODE, secretKey);

return cipher.doFinal(plainText.getBytes());

}

public static byte[] decrypt(byte[] encryptedBytes, String key) throws Exception {

SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");

Cipher cipher = Cipher.getInstance("AES");

cipher.init(Cipher.DECRYPT_MODE, secretKey);

return cipher.doFinal(encryptedBytes);

}

}

非对称加密算法使用公钥进行加密,私钥进行解密,安全性更高。Java中常用的非对称加密算法有RSA。

示例代码如下所示,使用RSA算法进行加密和解密:

import java.security.KeyPair;

import java.security.KeyPairGenerator;

import java.security.PrivateKey;

import java.security.PublicKey;

import javax.crypto.Cipher;

public class AsymmetricEncryptionExample {

public static void main(String[] args) throws Exception {

String plainText = "Hello, World!";

// 生成公私钥对

KeyPair keyPair = generateKeyPair();

// 加密

byte[] encryptedBytes = encrypt(plainText, keyPair.getPublic());

String encryptedText = new String(encryptedBytes);

System.out.println("加密后的文本:" + encryptedText);

// 解密

byte[] decryptedBytes = decrypt(encryptedBytes, keyPair.getPrivate());

String decryptedText = new String(decryptedBytes);

System.out.println("解密后的文本:" + decryptedText);

}

public static KeyPair generateKeyPair() throws Exception {

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");

keyPairGenerator.initialize(2048);

return keyPairGenerator.generateKeyPair();

}

public static byte[] encrypt(String plainText, PublicKey publicKey) throws Exception {

Cipher cipher = Cipher.getInstance("RSA");

cipher.init(Cipher.ENCRYPT_MODE, publicKey);

return cipher.doFinal(plainText.getBytes());

}

public static byte[] decrypt(byte[] encryptedBytes, PrivateKey privateKey) throws Exception {

Cipher cipher = Cipher.getInstance("RSA");

cipher.init(Cipher.DECRYPT_MODE, privateKey);

return cipher.doFinal(encryptedBytes);

}

}

以上就是Java中常用的加密解密算法的示例代码。通过使用这些算法,我们可以保护敏感数据的安全性。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码