Java加密算法函数
发布时间:2023-06-23 11:11:19
Java是一种最流行的编程语言之一,它有许多功能强大的加密算法函数。在这篇文章中,我们将涉及一些常用的加密算法函数,包括MD5、SHA-1、AES等。
1. MD5加密算法函数
MD5是一种广泛使用的加密算法,它可以将任何长度的消息转换成一个128比特的 指纹。Java中的MD5加密算法函数如下:
import java.security.*;
import java.math.*;
public class MD5 {
public static String getMD5(String input) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] messageDigest = md.digest(input.getBytes());
BigInteger number = new BigInteger(1, messageDigest);
String hashtext = number.toString(16);
while (hashtext.length() < 32) {
hashtext = "0" + hashtext;
}
return hashtext;
}
catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
}
2. SHA-1加密算法
SHA-1是另一种广泛使用的加密算法,它可以将任何长度的消息转换成一个160比特的 指纹。Java中的SHA-1加密算法函数如下:
import java.security.*;
import java.math.*;
public class SHA1 {
public static String sha1(String input) {
try {
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] messageDigest = md.digest(input.getBytes());
BigInteger number = new BigInteger(1, messageDigest);
String hashtext = number.toString(16);
while (hashtext.length() < 32) {
hashtext = "0" + hashtext;
}
return hashtext;
}
catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
}
3. AES加密算法函数
AES是一种高级加密标准,它是一种对称加密算法,可以加密和解密消息。Java中的AES加密算法函数如下:
import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.*;
public class AES {
private static String IV = "AAAAAAAAAAAAAAAA";
private static String key = "0123456789abcdef";
public static String encrypt(String input) {
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");
SecretKeySpec key = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
cipher.init(Cipher.ENCRYPT_MODE, key,new IvParameterSpec(IV.getBytes("UTF-8")));
return Base64.getEncoder().encodeToString(cipher.doFinal(input.getBytes("UTF-8")));
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String decrypt(String input) {
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");
SecretKeySpec key = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
cipher.init(Cipher.DECRYPT_MODE, key,new IvParameterSpec(IV.getBytes("UTF-8")));
return new String(cipher.doFinal(Base64.getDecoder().decode(input)));
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
总结
Java提供了许多功能强大的加密算法函数,这些函数可以保护我们的数据免受不良用户的攻击。通过使用这些函数,我们可以确保我们的数据安全,并预防恶意攻击。不过,在使用这些函数时,我们仍然需要保持警惕,了解加密算法的局限性,并选择最适合自己需求的加密技术。
