千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java不可逆加密

java不可逆加密

来源:千锋教育
发布人:zyh
时间: 2023-06-16 16:36:00 1686904560

  Java提供了许多不可逆加密算法,这些算法将数据转换为固定长度的散列值,而无法从散列值还原原始数据。常见的不可逆加密算法包括MD5、SHA-1、SHA-256等。

  下面是使用Java中的不可逆加密算法进行加密的示例代码:  

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class HashingExample {
public static void main(String[] args) {
String data = "Hello, World!";

// 使用MD5算法进行加密
String md5Hash = hashData(data, "MD5");
System.out.println("MD5 Hash: " + md5Hash);

// 使用SHA-1算法进行加密
String sha1Hash = hashData(data, "SHA-1");
System.out.println("SHA-1 Hash: " + sha1Hash);

// 使用SHA-256算法进行加密
String sha256Hash = hashData(data, "SHA-256");
System.out.println("SHA-256 Hash: " + sha256Hash);
}

public static String hashData(String data, String algorithm) {
try {
MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
byte[] hashBytes = messageDigest.digest(data.getBytes());

// 将字节数组转换为十六进制字符串
StringBuilder hexString = new StringBuilder();
for (byte b : hashBytes) {
String hex = Integer.toHexString(0xFF & b);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}

return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}

return null;
}
}

  请注意,尽管这些算法是不可逆的,但是由于它们的散列值空间有限,可能存在碰撞(两个不同的数据生成相同的散列值)的风险。因此,在实际应用中,对于敏感数据的存储和传输,应考虑使用更强大的加密算法,如可逆加密算法(如AES)。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT