【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-md5?
前言
一、原理:
Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。即byte用十六进制表示只占2位。 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上。
根据以上原理,就可以将byte数组转换为16进制字符串了,当然也可以将16进制字符串转换为byte数组了。
二 、16进制的意义:
1、用于计算机领域的一种重要的数制。
2、对计算机理论的描述,计算机硬件电路的设计都是很有益的。比如逻辑电路设计中,既要考虑功能的完备,还要考虑用尽可能少的硬件,十六进制就能起到一些理论分析的作用。比如四位二进制电路,最多就是十六种状态,也就是一种十六进制形式,只有这十六种状态都被用上了或者尽可能多的被用上,硬件资源才发挥了尽可能大的作用。
3、十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数。
例如,"48 65 6C 6C 6F" 转换为 "Hello"。
一、md5?
1.打开题目
2.解题
看题目得到16进制字符串
666c61677b616537333538376261353662616566357d
观察一下这一串字符 (1)数字为0-9,字母中,字符没有超过F。 (2)字符两两结合对应的十进制小于256。注:FF(十六进制)=255(十进制)
因此,猜测为16进制 用在线解密网站转码一下~
在线网站:
得到flag:
- 点赞
- 收藏
- 关注作者
评论(0)