java MD5 32位加密

简介: java MD5 32位加密

MD5简单介绍

大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件名做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。

MD5可以解密吗?

MD5加密原理是散列算法,散列算法也称哈希算法

比如10除以3余数为一,4除以3余数也为一,但余数为一的就不知道这个数是哪个了。

所以md5不能解密。也是为什么扣扣密码只能重置,不能找回的原因。

1.第一个种

import java.security.MessageDigest;
 
public class Test {
 
    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.encryption("12345678"));
    }
 
    /**
     *
     * @param plainText
     *            明文
     * @return 32位密文
     */
    public String encryption(String plainText) {
        String md5 = new String();
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            byte b[] = md.digest();
 
            int i;
 
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
 
            md5 = buf.toString();
 
        } catch (Exception e) {
            e.printStackTrace();
        }
        return md5;
    }
}

2.第二种

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
public class MD5Util {
    //待加密的密码
    public static String password = "zjb0425";
    
    public static void main(String args[]) {
        //结果字符串
        String result = "";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(password.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            result = buf.toString();
            System.out.println("MD5(" + password + ",32小写) = " + result);
            System.out.println("MD5(" + password + ",32大写) = " + result.toUpperCase());
            System.out.println("++++++++++++++++++++++++各位大哥借过+++++++++++++++++++++++");
            System.out.println("MD5(" + password + ",16小写) = " + buf.toString().substring(8, 24));
            System.out.println("MD5(" + password + ",16大写) = " + buf.toString().substring(8, 24).toUpperCase());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }
}

更多内容请关注:

相关文章
|
1天前
|
存储 Java 数据处理
Java的Base64加密解密详解
Java的Base64加密解密详解
|
6天前
|
存储 安全 算法
三种常见的加密算法:MD5、对称加密与非对称加密的比较与应用
网络安全聚焦加密算法:MD5用于数据完整性校验,易受碰撞攻击;对称加密如AES快速高效,密钥管理关键;非对称加密如RSA提供身份验证,速度慢但安全。三种算法各有所长,适用场景各异,安全与效率需权衡。【6月更文挑战第17天】
17 2
|
9天前
|
Java C# 数据安全/隐私保护
|
8天前
|
数据库 数据安全/隐私保护 数据库管理
QT中sqlite数据库数据加密/混淆---MD5/SHA1/SHA2/SHA3
QT中sqlite数据库数据加密/混淆---MD5/SHA1/SHA2/SHA3
|
1天前
|
存储 编解码 算法
Java实现MD5加密总结
Java实现MD5加密总结
|
1月前
|
编解码 算法 安全
怎么Java进行MD5摘要加密?
MD5(Message-Digest Algorithm 5)是一种常用的摘要算法,用于将任意长度的数据转换为固定长度的摘要值(通常为128位)。MD5算法的原理是将原始数据分成若干个固定长度的块,对每个块进行一系列的数据处理,最终得到一个128位的摘要值。这个摘要值可以作为数据的唯一标识,用于验证数据的完整性和真实性。
54 1
|
7月前
|
Java 数据安全/隐私保护 Spring
java实现MD5加密
java实现MD5加密
|
安全 Java API
Java中使用Shiro实现对密码加盐并使用MD5加密处理
我们在保存用户密码等敏感信息的时候,需要进行加密处理保存,才能更安全地保护用户个人信息安全
257 0
|
Java 数据安全/隐私保护
|
Java 数据安全/隐私保护
JAVA MD5加密工具类
JAVA MD5加密工具类
388 0