文档章节

MD5加密算法的java实现

TomatosX
 TomatosX
发布于 2015/04/22 23:47
字数 230
阅读 453
收藏 24
package other;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/*
 * MD5 算法
*/
public class MD5 {
    
    // 全局数组
    private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",
            "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

    public MD5() {
    }

    // 返回形式为数字跟字符串
    private static String byteToArrayString(byte bByte) {
        int iRet = bByte;
        // System.out.println("iRet="+iRet);
        if (iRet < 0) {
            iRet += 256;
        }
        int iD1 = iRet / 16;
        int iD2 = iRet % 16;
        return strDigits[iD1] + strDigits[iD2];
    }

    // 返回形式只为数字
    private static String byteToNum(byte bByte) {
        int iRet = bByte;
        System.out.println("iRet1=" + iRet);
        if (iRet < 0) {
            iRet += 256;
        }
        return String.valueOf(iRet);
    }

    // 转换字节数组为16进制字串
    private static String byteToString(byte[] bByte) {
        StringBuffer sBuffer = new StringBuffer();
        for (int i = 0; i < bByte.length; i++) {
            sBuffer.append(byteToArrayString(bByte[i]));
        }
        return sBuffer.toString();
    }

    public static String GetMD5Code(String strObj) {
        String resultString = null;
        try {
            resultString = new String(strObj);
            MessageDigest md = MessageDigest.getInstance("MD5");
            // md.digest() 该函数返回值为存放哈希值结果的byte数组
            resultString = byteToString(md.digest(strObj.getBytes()));
        } catch (NoSuchAlgorithmException ex) {
            ex.printStackTrace();
        }
        return resultString;
    }

    public static void main(String[] args) {
        MD5 getMD5 = new MD5();
        System.out.println(getMD5.GetMD5Code("000000"));
    }
}



本文转载自:http://www.cnblogs.com/computer-lzy/archive/2011/04/28/2031649.html

共有 人打赏支持
上一篇: RubyGems 镜像
TomatosX
粉丝 22
博文 207
码字总数 119547
作品 0
成都
iOS工程师
私信 提问
加载中

评论(4)

TomatosX
TomatosX

引用来自“烟花散落的夜空”的评论

那要是解码呢??
难度很大,有兴趣可以试试,我转的这个是相当简单的MD5加密,给你一个MD5的介绍吧:http://zh.wikipedia.org/wiki/MD5
烟花散落的夜空
烟花散落的夜空
那要是解码呢??
TomatosX
TomatosX

引用来自“selfly”的评论

三行代码搞定的东西写这么一堆
求分享
首席的哥队长
首席的哥队长
三行代码搞定的东西写这么一堆
Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC

加密解密,曾经是我一个毕业设计的重要组件。在工作了多年以后回想当时那个加密、解密算法,实在是太单纯了。 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书...

mrliuze
2015/05/27
0
0
java 计算文件MD5值 大文件

MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可...

laigous
2013/01/31
0
2
JAVA 加密/解密 博客链接

加密算法这种东西对与我来说只是了解每一个加密算法的处理业务流程 http://snowolf.iteye.com/blog/379860 http://www.ibm.com/developerworks/cn/java/l-security/ RSA 加密一些问题解决 ht...

triankg
2014/07/12
0
0
Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)

MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了。但这两种算法使用环境有差异,刚好互补。 一、MD5算法 首先MD5是不可逆的,只能加密而不能解密...

yanzi1225627
2014/05/21
0
0
【项目管理】软件项目经理须知的 Java 8 安全知识

【译者按】作为软件研发项目的项目经理,只懂项目管理知识是不够的,需要对软件技术本身有基本的了解。Java 是一种主流的系统开发语言,其安全设计对于构建安全的信息系统有至关重要的意义。...

军雷
2017/06/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.6)hadoop2.9.1平台上仓库工具hive2.3.4搭建

上一篇文章介绍了hive的原理以及实现机。本篇博客开始,博主将分享数据仓库hive工具搭建全过程。 一、安装Hive (1)、下载Hive和环境准备: Hive官网地址:http://hive.apache.org/index.html...

em_aaron
21分钟前
1
0
架构师和产品经理的区别

架构师和产品经理工作职责与内容异同如下:   一、架构师主要工作、职责如下:   1、协助部门经理制定相关技术开发规范;   2、带领团队持续改进产品的整体架构、功能模块、开发需求,...

咔咔大韦
45分钟前
4
0
第1章

背景:因为最近在考教师资格证,考的是计算机学科,所以学科考的是:信息技术学科知识与教学能力;因此图书馆借了一本书,把最基本的知识看一遍,为之后的笔试和面试做充足的准备。 大学计算...

怪咖先生forever
今天
1
0
element-ui之el-collapse-transition(折叠展开动画)源码解析学习

项目中发现同事使用了element-ui的el-collapse-transition来做折叠展开效果,打开源码看了下发现挺有意思,来解析学习一番。 el-collapse-transition的引入方式 // fade/zoom 等import 'e...

学霸猫
今天
1
0
解释器模式_实战

前言 解释器模式是什么?这个设计模式其实比较冷门,不太会解释,用例子说明把。解释器模式一般用在sql,xml,json解析等场景。比如说你有一个json对象,你要获取这个对象中任意一个节点的值。...

grace_233
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部