使用Md5进行字符串加密

在业务中,直接将密码存储在数据库中是不安全的,所以需要将密码加密后再存入数据库当中 。
【使用Md5进行字符串加密】MD5算法的算法特点如下:
压缩性:针对不同长度待加密的数据、字符串等等,其都可以返回一个固定长度的MD5加密字符串 。(通常32位的16进制字符串);

使用Md5进行字符串加密

文章插图
加密不可逆:其加密过程几乎不可逆,除非维护一个庞大的Key-Value数据库来进行碰撞破解,否则几乎无法解开 。
容易计算:从原数据计算出MD5值很容易 。
抗修改:对于一个固定的字符串 。数字等等,MD5加密后的字符串是固定的,也就是说不管MD5加密多少次,都是同样的结果 。而如果修改其中一个字节,得到的MD5值都很有很大变化 。
强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的 。
import java.nio.charset.StandardCharsets;import java.security.MessageDigest;import java.util.Base64;public class Main {/*** 对字符串进行加密*/public static String encode(String str) {try {//生成一个MD5加密计算摘要MessageDigest md = MessageDigest.getInstance("MD5");return Base64.getEncoder().encodeToString(md.digest(str.getBytes(StandardCharsets.UTF_8)));} catch (Exception e) {e.printStackTrace();return null;}}public static void main(String[] args) {System.out.println(encode("demo"));}}
输出结果: