atitit.md5算法的原理 与 总结
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算法的原理 与 总结相关推荐
- 漫画:什么是MD5算法
转载自 玻璃猫 程序员小灰 摘要哈希生成的正确姿势是什么样呢?分三步: 1.收集相关业务参数,在这里是金额和目标账户.当然,实际应用中的参数肯定比这多得多,这里只是做了简化. 2.按照规则,把参数名和 ...
- MD5 算法描述及实现
MD5 算法的原理及实现 章节目录 简介 算法描述 实现 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 简介## Wiki对其 ...
- 漫画:什么是MD5算法?
来自:梦见(微信号:dreamsee321) 摘要哈希生成的正确姿势是什么样呢?分三步: 1.收集相关业务参数,在这里是金额和目标账户.当然,实际应用中的参数肯定比这多得多,这里只是做了简化. 2.按 ...
- MD5算法原理与常用实现
目录 定义 MD5特点 常见应用场景 1.校验文件的完整性 2.存储用户密码 原理 1.填补信息 2.拿到初始值 3.真正的计算 MD5为什么不可逆 java实现和使用 定义 MD全称Message- ...
- C++安全方向openssl(三):3.2 md5算法原理详解以及代码实现
如下图: 由上可知,任意大小的数据经过md5算法是都是4个字节. 涉及到新的安全相关的内容,不再用md5了.通过md5算法的分析我们应该知道我们通过什么方式实现不可逆,又是通过什么方式实现修改一处内容 ...
- MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中
MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中 接上文,本文简要介绍一下MD5加密算法的原理,并采用C#实现MD5算法的加密与解密过程,将这一实现过程应用在我自己开发的桌面办公应 ...
- 常见安全算法(RSA、AES、MD5等)原理及实现和win10下OpenSSL库的使用
一.安全算法概述 安全算法通常被人们分为对称加密算法和非对称加密算法两类. 对称加密算法是指加密秘钥和解密秘钥相同的算法,即用什么加密就用什么解密,早期的安全算法均属于这一类.目前常见的对称加密算法有 ...
- 彩虹表破解开机密码、MD5算法等的原理
http://www.91ri.org/7593.html 自己发到91ri的,博客备份下. 前言 或许对于大多数人来说,实际中并不需要了解这些理论,能够使用现成的工具就行,但是我个人觉得了解了这些 ...
- php md5 file算法原理,MD5算法原理与实现
//MessageDigestAlgorithm5.cpp #include "stdafx.h" #include "MessageDigestAlgorithm5.h ...
- 【密码学】MD5算法原理
MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. MD5功能: ...
最新文章
- python 排序算法 简书_Python---简析八大排序算法
- 打印JVM配置参数的命令
- Qt QGraphics体系及刷新机制介绍
- php输出mysqli查询出来的结果
- ubuntu16.04下面流畅运行pycharm设置
- numpy存储特征:消耗内存和计算速度测试
- 20175212童皓桢 类定义
- 违约金一般是多少_违约金10万起!编制教师入职后的去留难题
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1、SpringBoot2.x课程介绍和高手系列知识点...
- hdu 1520 树形dp入门
- 22.	SCHEMA_PRIVILEGES
- 安装制作 基础篇(一) 基本概念
- 汉诺塔游戏程序可以通过“递归”来实现?但你未必清楚其根本原因。
- word标题多级编号里的坑
- html日历页面节假日_JavaScript实现有农历和节气节假日的日历
- AWGN信道条件下,基于16QAM+OFDM的误码率计算,并与理论值对比
- python 函数嵌套定义平行哪个好定义_在Python中,不能在一个函数的定义中再定义一个嵌套函数。...
- “去中心化”是区块链的目的吗
- 统计学与计算机考研学校排名,2018统计学考研院校排名
- 2015年热门的国产开源软件TOP 50