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://blog.csdn.net/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算法

    转载自 玻璃猫 程序员小灰 摘要哈希生成的正确姿势是什么样呢?分三步: 1.收集相关业务参数,在这里是金额和目标账户.当然,实际应用中的参数肯定比这多得多,这里只是做了简化. 2.按照规则,把参数名和 ...

  2. MD5 算法描述及实现

    MD5 算法的原理及实现 章节目录 简介 算法描述 实现 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 简介## Wiki对其 ...

  3. 漫画:什么是MD5算法?

    来自:梦见(微信号:dreamsee321) 摘要哈希生成的正确姿势是什么样呢?分三步: 1.收集相关业务参数,在这里是金额和目标账户.当然,实际应用中的参数肯定比这多得多,这里只是做了简化. 2.按 ...

  4. MD5算法原理与常用实现

    目录 定义 MD5特点 常见应用场景 1.校验文件的完整性 2.存储用户密码 原理 1.填补信息 2.拿到初始值 3.真正的计算 MD5为什么不可逆 java实现和使用 定义 MD全称Message- ...

  5. C++安全方向openssl(三):3.2 md5算法原理详解以及代码实现

    如下图: 由上可知,任意大小的数据经过md5算法是都是4个字节. 涉及到新的安全相关的内容,不再用md5了.通过md5算法的分析我们应该知道我们通过什么方式实现不可逆,又是通过什么方式实现修改一处内容 ...

  6. MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中

    MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中 接上文,本文简要介绍一下MD5加密算法的原理,并采用C#实现MD5算法的加密与解密过程,将这一实现过程应用在我自己开发的桌面办公应 ...

  7. 常见安全算法(RSA、AES、MD5等)原理及实现和win10下OpenSSL库的使用

    一.安全算法概述 安全算法通常被人们分为对称加密算法和非对称加密算法两类. 对称加密算法是指加密秘钥和解密秘钥相同的算法,即用什么加密就用什么解密,早期的安全算法均属于这一类.目前常见的对称加密算法有 ...

  8. 彩虹表破解开机密码、MD5算法等的原理

    http://www.91ri.org/7593.html  自己发到91ri的,博客备份下. 前言 或许对于大多数人来说,实际中并不需要了解这些理论,能够使用现成的工具就行,但是我个人觉得了解了这些 ...

  9. php md5 file算法原理,MD5算法原理与实现

    //MessageDigestAlgorithm5.cpp #include "stdafx.h" #include "MessageDigestAlgorithm5.h ...

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

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

最新文章

  1. python 排序算法 简书_Python---简析八大排序算法
  2. 打印JVM配置参数的命令
  3. Qt QGraphics体系及刷新机制介绍
  4. php输出mysqli查询出来的结果
  5. ubuntu16.04下面流畅运行pycharm设置
  6. numpy存储特征:消耗内存和计算速度测试
  7. 20175212童皓桢 类定义
  8. 违约金一般是多少_违约金10万起!编制教师入职后的去留难题
  9. 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1、SpringBoot2.x课程介绍和高手系列知识点...
  10. hdu 1520 树形dp入门
  11. 22. SCHEMA_PRIVILEGES
  12. 安装制作 基础篇(一) 基本概念
  13. 汉诺塔游戏程序可以通过“递归”来实现?但你未必清楚其根本原因。
  14. word标题多级编号里的坑
  15. html日历页面节假日_JavaScript实现有农历和节气节假日的日历
  16. AWGN信道条件下,基于16QAM+OFDM的误码率计算,并与理论值对比
  17. python 函数嵌套定义平行哪个好定义_在Python中,不能在一个函数的定义中再定义一个嵌套函数。...
  18. “去中心化”是区块链的目的吗
  19. 统计学与计算机考研学校排名,2018统计学考研院校排名
  20. 2015年热门的国产开源软件TOP 50

热门文章

  1. php try catch,php源码-try、catch过程-原理
  2. 李彦宏宣布百度架构调整:智能云事业部升级
  3. 亲测window+iis+letsencrypt+ssl 手动续期(通配符域名)
  4. 算法:从上往下打印二叉树
  5. iOS - 蓝牙开发(中心模式)
  6. [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)
  7. 3-unit2 高级网络配置
  8. 再看《JavaScript高级程序设计》第8-9章
  9. qq截图和ps相结合的功能
  10. Nagios 分布式