md5 包含哪些字符

md5 包含的字符有阿拉伯数字和大小写英文26个字母。MD5加密后的位数一般为两种,16位与32位,用的比较多的是32位的MD5加密,而16位MD5加密实际上就是从32位MD5加密结果中将中间的第9位到第24位提取出来。

md5 包含哪些字符-Worktile社区

一、md5 包含的字符

md5 包含的字符有阿拉伯数字和大小写英文26个字母。MD5加密后的位数一般为两种,16位与32位,用的比较多的是32位的MD5加密,而16位MD5加密实际上就是从32位MD5加密结果中将中间的第9位到第24位提取出来。

MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要(32位的数字字母混合码)。MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。

MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方。如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。

MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。

二、md5算法步骤

1、按位补充数据

在MD5算法中,首先需要对信息进行填充,这个数据按位(bit)补充,要求最终的位数对512求模的结果为448。也就是说数据补位后,其位数长度只差64位(bit)就是512的整数倍。即便是这个数据的位数对512求模的结果正好是448也必须进行补位。补位的实现过程:首先在数据后补一个1 bit; 接着在后面补上一堆0 bit, 直到整个数据的位数对512求模的结果正好为448。总之,至少补1位,而非常多可能补512位 。

2、扩展长度

在完成补位工作后,又将一个表示数据原始长度的64 bit数(这是对原始数据没有补位前长度的描述,用二进制来表示)补在最后。当完成补位及补充数据的描述后,得到的结果数据长度正好是512的整数倍。也就是说长度正好是16个(32bit) 字的整数倍。

3、初始化MD缓存器

MD5运算要用到一个128位的MD5缓存器,用来保存中间变量和最终结果。该缓存器又可看成是4个32位的寄存器A、B、C、D,初始化为:

  • A : 01 23 45 67
  • B: 89 ab cd ef
  • C: fe dc ba 98
  • D: 76 54 32 10

4、处理数据段

首先定义4个非线性函数F、G、H、I,对输入的报文运算以512位数据段为单位进行处理。对每个数据段都要进行4轮的逻辑处理,在4轮中分别使用4个不同的函数F、G、H、I。每一轮以ABCD和当前的512位的块为输入,处理后送入ABCD(128位)。

5、输出

信息摘要最终处理成以A, B, C, D 的形式输出。也就是开始于A的低位在前的顺序字节,结束于D的高位在前的顺序字节。

三、md5实例

  • 待加密字符串:admin
  • 32位MD5加密结果:21232f297a57a5a743894a0e4a801fc3
  • 16位MD5加密结果:7a57a5a743894a0e

延伸阅读

md5算法特点

  • 压缩性:任意长度的数据,算出的MD5值长度都是固定的。
  • 容易计算:从原数据计算出MD5值很容易。
  • 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
  • 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

文章标题:md5 包含哪些字符,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/35520

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年1月13日 下午9:06
下一篇 2023年1月13日 下午9:27

相关推荐

  • 如何编写研发测试用例

    步骤:一、确定测试目标;二、确定测试类型;三、确定测试覆盖范围;四、确定测试条件;五、设计测试用例;六、执行测试用例;七、评估测试结果。在设计测试用例之前,需要明确测试目标。测试目标一般是根据软件需求或者用户需求来确定的。 一、确定测试目标 在设计测试用例之前,需要明确测试目标。测试目标一般是根据软…

    2023年3月30日
    35000
  • 如何在紧迫截止日期下管理进度

    紧迫的截止日期下管理进度,需遵循几个关键步骤:1.明确任务目标、2.分解任务、3.估算时间、4.优先级排序、5.实施计划、6.监测进度。 具体来说,分解任务 是关键。这意味着将一个庞大的项目切割为小块,让团队可以更快地着手并逐一消灭问题。例如,开发软件项目可以分为需求分析、设计、编码、测试和部署等几…

    2023年12月26日
    27200
  • DevOps与版本控制和代码管理的区别

    它们主要区别有:1、职责范围:DevOps 更关注软件开发周期全流程,而版本控制和代码管理专注于代码的版本化和存储。2、工具使用:DevOps 使用一系列工具,包括但不限于版本控制工具,而版本控制和代码管理通常使用 Git、SVN 等专门工具。3、团队协作:DevOps 强调跨部门协作,而版本控制和…

    2023年9月13日
    50100
  • 为什么vscode写不了python

    Visual Studio Code (VSCode) 无法编写Python主要可能是因为未安装Python扩展、Python解释器未安正确或者PATH环境变量配置有误。在使用VSCode编写Python代码时,确保首先安装了Python扩展,并下载配置了Python解释器,它们是VSCode编辑和…

    2024年4月3日
    10200
  • 如何修改IP地址

    修改IP地址的方法:1、代理IP修改IP地址;2、开启/关闭飞行模式换IP;3、路由设备重启改IP;4、在电脑上手动修改。代理IP修改IP地址是指,利用代理IP技术更换手机电脑IP、切换模拟器、软路由、虚拟机等IP地址。 1、代理IP修改IP地址 在爬虫Python、游戏多开、营销推广、SEO、试玩…

    2023年1月6日
    1.2K00
  • 如何在高压环境下保持研发效能

    在高压环境下保持研发效能要关注人员心理健康、良好的沟通机制、有效的时间管理、适度的压力调节、创新激励机制和资源的合理配置。首要,确保团队成员的心理状态稳定,为他们提供必要的支持,包括心理疏导和放松空间。其次,建立高效的沟通渠道,以确保信息流动畅通无阻,减少误解和冲突。接着,实施明智的时间管理策略,优…

    2023年11月17日
    28700
  • 如何进行组内项目工作管理

    方法:一、明确目标;二、做好规划;三、明确分工;四、分配任务并授权;五、让员工参与进来;六、以身作则;七、沟通到位;八、建立有效的团队激励机制。没有一个正确的方向是难以取得成功的,所以在一个团队中有无正确的指导方向很重要。 一、明确目标 无论是做什么,没有一个正确的方向是难以取得成功的,所以在一个团…

    2023年3月30日
    63700
  • Devops遥测是什么意思

    DevOps遥测指的是获取、分析及利用软件开发与运维过程中产生的数据,以监测、优化系统性能与工作流。1、监控与警报机制的建立,这一策略致力于捕捉系统潜在的问题,并进行实时警报; 2、性能指标的跟踪分析,关键在于衡量系统的实时表现以便进行调优; 3、工作流与进度的优化,旨在通过数据分析改善开发与部署的…

    2024年3月26日
    7200
  • devops需要什么语言

    开门见山,DevOps 领域运用的语言多种多样,包含但不限于 Python、Ruby、JavaScript、Go、BASH 等。Python 因其易于学习和强大的自动化库,日渐成为了DevOps实践中的一颗璀璨明星。它能够简化脚本编写流程、加速日常任务执行,同时通过丰富的第三方库加强与各种工具和平台…

    2024年3月26日
    7000
  • 为什么内存和硬盘的寿命有差距

    内存(RAM)和硬盘(HDD/SSD)是计算机中两个至关重要的存储部件,但它们的寿命有着明显的差距。影响它们寿命的主要因素包括:1.使用频率与负载;2.物理材料和制造工艺;3.数据读写方式;4.散热和环境因素;5.软件管理与维护等。本文将逐一解析这些因素,并为如何延长它们的寿命提供实用建议。 1.使…

    2023年7月12日
    51800

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部