博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA中简单的MD5加密类(MD5Utils)
阅读量:7303 次
发布时间:2019-06-30

本文共 2159 字,大约阅读时间需要 7 分钟。

MD5加密分析:
 
JDK API:
 
获取对象的API:
 
加密的API:
 
1 package cn.utils; 2  3 import java.security.MessageDigest; 4 import java.security.NoSuchAlgorithmException; 5  6 /** 7  * @author CQY13 MD5加密工具类 8  */ 9 public class MD5Utils {10 11     /**12      * 获取MD5加密13      * 14      * @param pwd15      *            需要加密的字符串16      * @return String字符串 加密后的字符串17      */18     public static String getPwd(String pwd) {19         try {20             // 创建加密对象21             MessageDigest digest = MessageDigest.getInstance("md5");22 23             // 调用加密对象的方法,加密的动作已经完成24             byte[] bs = digest.digest(pwd.getBytes());25             // 接下来,我们要对加密后的结果,进行优化,按照mysql的优化思路走26             // mysql的优化思路:27             // 第一步,将数据全部转换成正数:28             String hexString = "";29             for (byte b : bs) {30                 // 第一步,将数据全部转换成正数:31                 // 解释:为什么采用b&25532                 /*33                  * b:它本来是一个byte类型的数据(1个字节) 255:是一个int类型的数据(4个字节)34                  * byte类型的数据与int类型的数据进行运算,会自动类型提升为int类型 eg: b: 1001 1100(原始数据)35                  * 运算时: b: 0000 0000 0000 0000 0000 0000 1001 1100 255: 000036                  * 0000 0000 0000 0000 0000 1111 1111 结果:0000 0000 0000 000037                  * 0000 0000 1001 1100 此时的temp是一个int类型的整数38                  */39                 int temp = b & 255;40                 // 第二步,将所有的数据转换成16进制的形式41                 // 注意:转换的时候注意if正数>=0&&<16,那么如果使用Integer.toHexString(),可能会造成缺少位数42                 // 因此,需要对temp进行判断43                 if (temp < 16 && temp >= 0) {44                     // 手动补上一个“0”45                     hexString = hexString + "0" + Integer.toHexString(temp);46                 } else {47                     hexString = hexString + Integer.toHexString(temp);48                 }49             }50             return hexString;51         } catch (NoSuchAlgorithmException e) {52             // TODO Auto-generated catch block53             e.printStackTrace();54         }55         return "";56     }57 58     /**59      * @param args60      */61     public static void main(String[] args) {62         String pwd = MD5Utils.getPwd("abc");63         System.out.println(pwd);64     }65 66 }

 

 

转载地址:http://ithnm.baihongyu.com/

你可能感兴趣的文章
linux
查看>>
selenium系列->Actions命令实例整理->assignId(l,i)
查看>>
java导出excel
查看>>
Java动态填充word文档并上传到服务器
查看>>
Docker学习笔记四:Docker容器(container)
查看>>
【VMware vSAN 6.6】2.3.vSAN在vSphere Hypervisor中自带
查看>>
【Openbravo开发】Openbravo windows开发环境搭建
查看>>
Linux 搭建LAMP论坛
查看>>
OSI七层模型和TCP/IP五层模型、iproute家族命令、管理工具介绍
查看>>
OA协同办公系统,流程管理很重要
查看>>
国产移动操作系统的推动
查看>>
2019年Java程序员金三银四跳槽季,机会只留给有准备的人!
查看>>
PDF格式文件怎样编辑,怎样新建书签
查看>>
PDF文件怎么旋转页面
查看>>
在Windows,MacOs,Linux,Unix和Ubuntu上安装MySQL Connector
查看>>
编程之我见
查看>>
深入研究Netty框架之ChannelHandler和ChannelPipeline
查看>>
30秒上手新一代Http请求神器RxHttp
查看>>
k8s与数据分析--利用redash做自助数据分析
查看>>
让别人舒服的程度,决定你路的宽度和高度
查看>>