zoukankan      html  css  js  c++  java
  • 18 MD5加密

           1. MD5概述

                  MD5是一种加密算法。可以用于数据加密、文件快传、文件校验 、数据压缩等方面。

                  MD5还被称之为数据摘要算法,或数据指纹算法。 

                  a. 特点:

                         i. 经过加密后的数据,是不可破译的,无法得到原有的明文内容。

                         ii. 经过加密的数据,都是128位2进制数据组成。通常会把它书写成32位16进制数据。

                         iii. 任何形式的数据,经过加密之后,都会变为二进制数据,长度为32位16进制数据。

                         iv. 同一份数据经过md5加密之后,一定会得到同一个结果。

           2. MD5密码数据库中的数据

                  数据库中的密码, 使用,这是mysql数据库自带的一个函数

                  update user set password = md5(password);

                 

                  在数据库加密之后,代码中的密码也应当加密,否则就会出现明文密码与密码密码做判断的情况,永远无法匹配。

    创建MD5Utils工具类:

    package com.easymall.utils;
    
    import java.math.BigInteger;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    public class MD5Utils {
        /** * 使用md5的算法进行加密 */
        public static String md5(String plainText) {
            byte[] secretBytes = null;
            try {
                secretBytes = MessageDigest.getInstance("md5").digest(
                        plainText.getBytes());
            } catch (NoSuchAlgorithmException e) {
                throw new RuntimeException("没有md5这个算法!");
            }
            String md5code = new BigInteger(1, secretBytes).toString(16);
            for (int i = 0; i < 32 - md5code.length(); i++) {
                md5code = "0" + md5code;
            }
            return md5code;
        }
    }

    使用

  • 相关阅读:
    第1周学习进度
    四则运算题1
    性能监控系统 | 从0到1 搭建Web性能监控系统
    数据库 | Oracle数据库查表空间使用情况
    性能测试 | 系统运行缓慢,CPU 100%,Full GC次数过多问题排查
    Markdown | 语法
    性能测试 | 理解单线程的Redis为何那么快?
    性能测试 | 理解分布式、高并发、多线程
    性能测试 | 常见的性能测试指标
    mysql 中varchar(50)最多能存多少个汉字
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11383203.html
Copyright © 2011-2022 走看看