欢迎访问宙启技术站
智能推送

Java中的Encryption算法函数

发布时间:2023-11-10 04:43:13

Java中的Encryption算法函数有很多,常见的有以下几种:

1. MD5加密算法:

MD5是一种常用的哈希加密算法,常用于对密码进行加密,主要特点是不可逆。Java中提供了MessageDigest类来实现MD5算法的加密。具体代码如下:

import java.security.MessageDigest;
import javax.xml.bind.DatatypeConverter;

public String encryptWithMD5(String input) {
    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(input.getBytes());
        byte[] digest = md.digest();
        return DatatypeConverter.printHexBinary(digest).toUpperCase();
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

2. SHA加密算法:

SHA也是一种常用的哈希加密算法,与MD5相比,SHA算法具有更强的抗攻击性。Java中同样可以使用MessageDigest类来实现SHA算法的加密。具体代码如下:

import java.security.MessageDigest;
import javax.xml.bind.DatatypeConverter;

public String encryptWithSHA(String input) {
    try {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(input.getBytes());
        byte[] digest = md.digest();
        return DatatypeConverter.printHexBinary(digest).toUpperCase();
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

3. AES加密算法:

AES是一种对称加密算法,也是目前最常用的加密算法之一。Java中可以使用javax.crypto包提供的Cipher类来实现AES算法的加密和解密。具体代码如下:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

public String encryptWithAES(String input, String key) {
    try {
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        byte[] encryptedBytes = cipher.doFinal(input.getBytes());
        return Base64.getEncoder().encodeToString(encryptedBytes);
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

以上是Java中常见的几种Encryption算法函数,根据实际需求选择合适的算法进行加密。