//消息摘要:将任意长度的字符数组处理成定长的字符数组,用于确保原字符串不被修改,
//也可以用做密码确认,如果密码一致,则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. python中的gil是什么?

    1.gil是什么? 在Python源代码:Python-2.7.10/Python/ceval.c.我看到的Python源代码版本为2.7.10 static PyThread_type_lock i ...

  2. C#使用Json

    AJAX传递复杂数据如果自己进行格式定义的话会经历组装.解析的过程,因此AJAX中有一个事实上的数据传输标准JSon. Json将复杂对象序列化为一个字符串,在浏览器端再将字符串反序列化为JavaSc ...

  3. gcc 生成动态库时-fpic选项是什么意思。

    -f后面跟一些编译选项,PIC是其中一种,表示生成位置无关代码(Position Independent Code)

  4. js在php 中出现 unterminated string literal 解决方法

    出现这个问题就是空格造成的(可清空格符,换行符等) 示例代码如下: php 下报错 <?php echo "<a href=javascript:if(window.confir ...

  5. textarea 超过字数

    <textarea name="></textarea> <div id="statementRowChk"></div> ...

  6. task_struct

    Linux中task_struct用来控制管理进程,结构如下: struct task_struct { //说明了该进程是否可以执行,还是可中断等信息    volatile long state; ...

  7. xe6+firedac连接sybase

    一.Win7 X64系统安装sybase odbc: 1.  下载对应包至c:\system_odbc(文件夹名自己取,在后面注册表内容需要用到): 2.  将值信息写入到注册表内: Windows ...

  8. SQLite批量插入,修改数据库 zt

    SQLiteConnection sqConnection = dataProvider.GetDbConnection(); sqConnection.Open(); SQLiteCommand s ...

  9. IntelliJ IDEA 使用随笔

    注册的地址:http://idea.iteblog.com/key.php

  10. spring mvc 配置

    之前配置spring mvc 怎么都访不到对应的jsp,后来把prefix里面的jsp改为views,就能访问到了,然后再改回jsp也可以访问到 搞了两天,都崩溃了,不管怎样先把没问题的例子给记录下来 ...