栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MD5基本

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MD5基本

1 简介:

MD5全名Message-Digest Algorithm 5,是一种计算机使用的散列函数,加密是一种不可逆的加密规则,用于确保信息的完整,经过加密算法输出固定长度的字符串

2 作用:

一致性校验

数字签名

安全访问认证,这个就是平时系统设计的问题

3 特点:

不管多长的字符串,加密后长度都是一样的

不管一个文件(数据)多大,只要改变其中的一个字符,都会导致MD5的值发生改变

4 总结: 

MD5加密的数据这,一个字符只有唯一一个与之对应的MD5加密数据,但是一个MD5加密数据可以同时对应多个字符串,因此不能使用MD5加密后的数据做为数据库的主键

MD5是不可逆的,即使知道密文,也无法破译出原始数据

5 使用原理:

数据库敏感信息加密,在使用的时候将原始数据进行加密,对比两次加密数据是否相同

6 java实现MD5加密:
package com.example.manystu20220612.mdt;

import java.security.MessageDigest;

public class TestMD5 {
    public static String strChangeMD5(String inStr) {
        MessageDigest md5 = null;
        try {
            md5 = MessageDigest.getInstance("MD5");
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
        char[] charArray = inStr.toCharArray();
        byte[] byteArray = new byte[charArray.length];
        for (int i = 0; i < charArray.length; i++){
            byteArray[i] = (byte) charArray[i];
        }
        byte[] md5Bytes = md5.digest(byteArray);
        StringBuffer hexValue = new StringBuffer();
        for (int i = 0; i < md5Bytes.length; i++) {
            int val = ((int) md5Bytes[i]) & 0xff;
            if (val < 16)
                hexValue.append("0");
            hexValue.append(Integer.toHexString(val));
        }
        return hexValue.toString();
    }

    // 可逆的加密算法
    public static String en_al(String inStr) {
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
        }
        String s = new String(a);
        return s;
    }

    // 加密后解密
    public static String JM(String inStr) {
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
        }
        String k = new String(a);
        return k;
    }

    public static void main(String[] args) {
        String s = new String("我不会加密算法啦啦啦啦啦啦啦啦");
        System.out.println("原始:" + s);
        System.out.println("MD5后:" + strChangeMD5(s));
        System.out.println("MD5后再加密:" + en_al(strChangeMD5(s)));
        System.out.println("解密为MD5后的:" + JM(en_al(strChangeMD5(s))));
    }
}

代码实现偷个懒,java实现谁写都一样,若有改动无非就是加字符串延长值,对比同时加字符串,,,,,

坚持更新更多啦,

搬砖人----------------------------------:

搬砖烫手

不办没钱

啊

啊

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007374.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号