atitit.md5算法的原理 与 总结

1. MD5的位数 128位1

2. 字节数组转换为32位字符串 base161

2.1. 十六进制字符用4个二进制位来表示1

2.2. byte[]和十六进制字符串相互转换2

3. md5的base64表示法3

4. 参考3

1. MD5的位数 128位

生成一个128为的字节数组。。

2. 字节数组转换为32位字符串 base16

每4位可以1111

正好0--f 可以完整的标识4位比特。。

2.1. 十六进制字符用4个二进制位来表示

十六进制的每个字符需要用4位二进制位来表示

2的四次方等于16。所以要用4个二进制位表示一个十六进制字符

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

如下所示:

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

A

1010

B

1011

C

1100

D

1101

E

1110

F

1111

2.2. byte[]和十六进制字符串相互转换

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示。

所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果

new String(H) + new String(L)。

同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上。

根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当然也可以将16进制字符串转换为byte[]数组了

3. md5的base64表示法

4. 参考

Java byte数组与十六进制字符串互转 - 鑫鑫哥哥呀的个人页面 - 开源中国社区.htm

Java利用MessageDigest获取字符串或文件MD5详解 - 鼠穴 - 开源中国社区.htm

atitit.md5算法的原理 与 总结的更多相关文章

  1. MD5算法的原理与实现

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

  2. [转帖漫画]什么是 MD5 算法?---摘要算法 具体算法 一直搞不清楚

    漫画:什么是 MD5 算法? 2017-10-05 20:16 来源:伯乐专栏作者/玻璃猫,微信公众号 - 梦见 好文投稿, 请点击 → 这里了解详情 梦见 摘要哈希生成的正确姿势是什么样呢?分三步: ...

  3. 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. ...

  4. Atitit 贝叶斯算法的原理以及垃圾邮件分类的原理

    Atitit 贝叶斯算法的原理以及垃圾邮件分类的原理 1.1. 最开始的垃圾邮件判断方法,使用contain包含判断,只能一个关键词,而且100%概率判断1 1.2. 元件部件串联定律1 1.3. 垃 ...

  5. Atitit.java图片图像处理attilax总结  BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与

    Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...

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

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

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

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

  8. MD5哈希算法及其原理

    - MD5功能 MD5算法对任意长度的消息输入,产生一个128位(16字节)的哈希结构输出.在处理过程中,以512位输入数据块为单位. - MD5用途及特征 MD5通常应用在以下场景: 1.防篡改,保 ...

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

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

随机推荐

  1. 【java】实体类中 按照特定的字段 进行升序/降序 排序

    背景: 实际页面上  所有的分值都是按照JSON格式存储在一个字符串中 存储在同一个字段中: {"ownPTotal":"10>0","ownO ...

  2. 【java】实体类中 Set<对象> 按照对象的某个字段对set排序

    背景: User实体类 有个属性是 Set<PositionChange> 职位变更字段 如下: PositionChange实体类  有个属性是positionStartDate   什 ...

  3. python3 str和bytes之间转换

    a bytes-like object is required, not 'str' 碰到 这个错误 ,是因为需要是的bytes,不是str bytes -> str: 1  str-> ...

  4. python学习:常见问题

    问题1:SyntaxError: Non-ASCII character '\xe5' in file E:\PythonDev\testmodule.py on line 21, but no en ...

  5. ci框架(一)

    ci目录结构                                                                                    |-----syst ...

  6. (转)dubbo design

    框架设计 整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口, 位于中轴线上的为双方都用到的接口. 图中从下至上分为十层,各层均为单向依赖,右边的黑 ...

  7. 在笛卡尔坐标系上描绘函数(x*x+1)/(x*x-1)曲线

    代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type ...

  8. [转]mysql 常用命令集锦[绝对精华]

    测试环境:mysql 5.0.45 [注:可以在mysql中通过mysql> SELECT VERSION();来查看数据库版本] 一.连接MYSQL. 格式: mysql -h主机地址 -u用 ...

  9. 如何使用angularjs实现文本框获取焦点

    <!DOCTYPE html> <html ng-app="myApp"> <head> <title>angularjs-focu ...

  10. 算法笔记_053:最优二叉查找树(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 在了解最优二叉查找树之前,我们必须先了解何为二叉查找树? 引用自百度百科一段讲解: 二叉排序树(Binary Sort Tree)又称二叉查找树(B ...