MD/SHA256加密
加密优点:
MD/SHA256加密非常可靠并且是不可逆的
不可逆:正常情况下我们对 “a” 使用MD5字符串加密后会变成一个16进制的字符串(举例:51454ab15165),把任何一个字符串变成一个16进制的字符串,这个是不可逆的。假设有人拿到了加密后的结果(举例:51454ab15165)是不可能反推出 “a” 的。
jar:这里使用commons-codec-1.9.jar
MD5加密
/**
* Copyright © 2020wangylCompany. All rights reserved.
*
* @Title: SecurityUtil.java
* @Prject: MyTestDemo
* @Package: utils
* @Description: TODO
* @author: wangyl
* @date: 2020年8月27日 下午2:27:57
* @version: V1.0
*/
package utils;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.codec.digest.DigestUtils;
/**
* @ClassName: SecurityUtil
* @Description: TODO 加密和解密
* @author: wangyl
* @date: 2020年8月27日 下午2:27:57
*
*
*/
public class SecurityUtil {
/**
*
* @Title: md5Encode
* @Description: TODO MD5加密
* @author: wangyl
* @param input 加密字节数组
* @return
* @return: String
*/
public static String md5Encode(byte[] input){
/*
* MD5加密需要使用到DigestUtils.md5Hex
* 但是md5Hex有三种参数形式
* public static String md5Hex(byte[] data)
* public static String md5Hex(InputStream data) throws IOException
* public static String md5Hex(String data)
*
* 那这里可以选的就有byte[]和String
* 这里选用byte[]为参数:
* 如果使用String为参数,那么加密就是String---->String
* 正常使用参数为abc可以,但是参数为123就不可以了,但是byte[]都可以解析
* 加密的对象很多,正常一个实体类对象加密字节数组也是可以解析的
* 任何类型的对象都可以转换成字节数组(二进制形式),这里使用byte[]可以实现通用加密
*
*/
return DigestUtils.md5Hex(input);
}
public static void main(String[] args){
//md5加密
String input = "MD5方式加密";
//由于md5使用的参数是字节数组,这里需要进行转换
String md5Encode = md5Encode(input.getBytes());//加密后的字符串
System.out.println(input+"\t使用MD5加密:\t"+md5Encode);
//MD5方式加密 使用MD5加密: 74c59e50306f284c902be9f986db64d9
}
}
SHA256加密
/**
*
* @Title: sha256Encode
* @Description: TODO SHA加密
* @author: wangyl
* @param input 传入一个字节数组
* @return
* @return: String
*/
public static String sha256Encode(byte[] input){
//这里的参数同MD5类似,还是传入一个字节数组
return DigestUtils.sha256Hex(input);//Hex指的是16进制
}
//SHA256加密
String input = "SHA256方式加密";
//由于md5使用的参数是字节数组,这里需要进行转换
String sha256Encode = sha256Encode(input.getBytes());//加密后的字符串
System.out.println(input+"\t使用SHA256加密:\t"+sha256Encode);
//SHA256方式加密 使用SHA256加密: 24b97a1125f9df6e1c67547776fc4fa11638766c71ddf9626b95f0f4c7d76d9e
MD/SHA加密总结:
1、MD5/SHA256机密理论上来说都是不可逆的
2、MD5的速度相对SHA256快一点
3、SHA256的安全性相对MD5较高

MD/SHA256加密是可靠的不可逆过程,主要用于数据的保密。MD5加密速度快但安全性相对较低,而SHA256虽然慢一些,但其安全性更高。两者都是不可逆的,无法从加密后的结果反推出原始信息。
1609

被折叠的 条评论
为什么被折叠?



