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();
        }
    }
}

更多内容请关注:

相关文章
|
3月前
|
编解码 算法 安全
怎么Java进行MD5摘要加密?
MD5(Message-Digest Algorithm 5)是一种常用的摘要算法,用于将任意长度的数据转换为固定长度的摘要值(通常为128位)。MD5算法的原理是将原始数据分成若干个固定长度的块,对每个块进行一系列的数据处理,最终得到一个128位的摘要值。这个摘要值可以作为数据的唯一标识,用于验证数据的完整性和真实性。
36 1
|
18天前
|
Java 数据安全/隐私保护
java base64 加密 解密
java base64 加密 解密
|
8月前
|
Java 数据安全/隐私保护
java中RSA的加密与解密
java中RSA的加密与解密
101 0
|
Java 数据安全/隐私保护
java md5 加密文件
java md5 加密文件
98 1
|
Java 数据安全/隐私保护
JAVA MD5加密工具类
JAVA MD5加密工具类
372 0
|
Java 数据安全/隐私保护
Java生成随机字符串与md5加密
Java生成随机字符串与md5加密
|
存储 算法 安全
JAVA的MD5加密与解密
昨天是老同学生日 00点后就是我生日了 搞的我都好那个了 两点多开了房睡觉 快三点多才睡着 今天做程序 同事说要把页面上的绑定信息加个密 好久没有写过加密算法了 都生疏了 找了段MD5算法就加了下密。。
1318 1
|
Java 数据安全/隐私保护
java MD5 加密
java MD5 加密
176 0
|
Java C# 数据安全/隐私保护
Java和C# MD5加密比较
  最近使用java 开发一个之前用C#开发的项目,当项目将要结束的时候,数据迁移出现了一个问题,那就是用户信息的迁移。之前C#版的项目是使用MD5+Base64加密的密码,加密过程太过于复杂,导致两者用户数据不能兼容。
2456 0