//消息摘要:将任意长度的字符数组处理成定长的字符数组,用于确保原字符串不被修改,
//也可以用做密码确认,如果密码一致,则MD5产生后的值必然一致,否则不相同
public class DataUtil {
public static void main(String[] args) throws Exception {
char[] ch={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F',};
String src= "唐";
StringBuffer sb=new StringBuffer();
byte[] b1=src.getBytes();
System.out.println("-----------"+b1.length);
for(byte b:b1){
System.out.print(b+" ");
}
System.out.println();
MessageDigest md= MessageDigest.getInstance("MD5");
byte[] b2=md.digest(b1);
System.out.println("-------"+b2.length);
for(byte b:b2){
System.out.print(b+" ");
//高四位
sb.append(ch[b>>4 & 0x0F]);
//低四位
sb.append(ch[b & 0x0F]);
}
System.out.println();
System.out.println(sb.length()+":"+sb.toString()); }
}

MD5算法原理的更多相关文章

  1. md5算法原理一窥(其一)

    首先,需要了解的事,md5并不是传说中的加密算法,只是一种散列算法.其加密的算法并不是我们说所的那样固定不变,只是一种映射的关系. 所以解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD ...

  2. 【密码学】MD5算法原理

    MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. MD5功能:    输 ...

  3. 【编程开发】MD5算法原理

    MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用.     MD5功能: ...

  4. Algorithm:MD5算法原理说明

    MD5算法实现: 输入:不定长度信息(要加密的信息) 输出:固定长度128-bits.由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值. 基本方式为:求余.取余.调整长度.与链接 ...

  5. Atitit.md5 实现原理

    Atitit.md5 实现原理 1. 算法流程图2 2. MD5算法过程:2 2.1. 3. 处理分组数据3 3. MD5加密字符串实例5 4. Md5的历史7 4.1.1. MD27 4.1.2. ...

  6. MD5算法——C++实现

    MD5算法原理 MD5消息摘要算法,属Hash算法一类.MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要. 具体实现可参考博客 https://blog.csdn.net/sinat ...

  7. MD5值算法原理

    MD5原理说明 一.MD5算法介绍. MD5,即“Message-Digest Algorithm 5(信息-摘要算法)”,从名字来看就知道它是从MD3.MD4发展而来的一种加密算法,其主要通过采集文 ...

  8. MD5算法的原理与实现

    ***********************************************声明************************************************ 原创 ...

  9. atitit.md5算法的原理 与 总结

    atitit.md5算法的原理 与 总结 1. MD5的位数 128位1 2. 字节数组转换为32位字符串 base161 2.1. 十六进制字符用4个二进制位来表示1 2.2. byte[]和十六进 ...

随机推荐

  1. 2016.08.06计算几何总结测试day1

    T1 bzoj1132[POI2008]TRO 还是太弱了....测试时看到这题直接懵逼,极角排序什么的根本想不起来,只会n^3暴力怎么破......不过竟然有84.....QAQ 正解是n^2log ...

  2. CF Round#240题解

    第一次参加CF的比赛,MSK19.30,四个小时的时差真心累,第一次CODE到这么夜-- 一开始做了A,C两题,后来做B题的时候我体力和精神集中度就很低了,导致一直WA在4-- 今天起床后再刷B,终于 ...

  3. 九度OJ 1042 Coincidence -- 动态规划(最长公共子序列)

    题目地址:http://ac.jobdu.com/problem.php?pid=1042 题目描述: Find a longest common subsequence of two strings ...

  4. 九度OJ 1205 N阶楼梯上楼问题 -- 动态规划(递推求解)

    题目地址:http://ac.jobdu.com/problem.php?pid=1205 题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入: 输入包括 ...

  5. windows phone 8 设置锁屏背景

    本来想研究一下 利用闪光灯实现手电筒的代码,发现不是简答设置FlashMode属性可以解决问题的,ms也没有提供api,无意瞄了一眼侧边栏的文章列表,发现了设置屏幕锁屏背景的实现,手一抖点进去了.还算 ...

  6. 检查mysql数据库是否存在坏表脚本

    #!/bin/bash #此脚本的主要用途是检测mysql服务器上所有的db或者单独db中的坏表 #变量说明 pass mysql账户口令 name mysql账号名称 data_path mysql ...

  7. 数据结构学习——shell排序的C语言实现

    shell排序: 这个排序的命名是来自发明者的名字,和排序的方法没有字面上的联系.所以不要因为名字而感觉很难.在K&R的C程序设计语言中书中只用了几行代码很简洁的实现了这个排序算法.那就来看看 ...

  8. 7种基本排序算法的Java实现

    7种基本排序算法的Java实现 转自我的Github 以下为7种基本排序算法的Java实现,以及复杂度和稳定性的相关信息. 以下为代码片段,完整的代码见Sort.java 插入排序 /** * 直接插 ...

  9. 【原创】Linux 内核模块编程

    sudo gedit hello.c #include <linux/module.h> #include <linux/kernel.h> #include <linu ...

  10. QTcpsocket 实现FTP

    http://blog.163.com/modingfa_002/blog/static/1109254662013111510358109/ http://baike.baidu.com/link? ...