md5密文与明文之间的相互转换

JSON 2023-08-03 16:20:13 18944

一、字符串编码

我们在加密之前,首选需要做的就是将需要加密的字符串进行编码。编码方式可以使用UTF8、ASCII以及GBK。编码方式的不同会影响到MD5加密的结果。所以在加密之前,我们要选择好合适的编码方式。

UTF-8 编码

UTF-8编码是种可变长度字符编码,针对Unicode的任意字符。TF-8编码的每个字符的长度可以是1-4字节,在进行字符串编码的时候,我们要把字符串当中的每一个字符转换成对应的UTF-8编码。

例如下面代码。使用Python中的encode()函数将字符串转换为UTF-8编码


ASCII 编码

ASCII编码是我们常用的字符编码方式,它需要使用指定的7位或8位二进制数组合来表示128或256种随机的字符。其中就包括了数字和英文以及一些特殊的标点符号。比如A的ASCII 编码为 02000002,数字 1 的 ASCII 编码为 00220002

假如我们对字符串 "sojson"进行编码。如下


GBK 编码

GBK编码是中国大陆制订的一种双字节编码方式。在GBK里面,每一个中文由两个字节来表示,每个字节的取值范围是0x81~0xfe。同样的使用GBK编码进行字符串编码的话需要将字符串中的每个中文字符转换为对应的GBK编码。

例如下面代码,对于字符串 "你好",进行编码


二、MD5加密

对字符串进行勒编码之后,接下来就是MD5加密了,MD5算法是不可逆的,同时还具备唯一性、敏感性等特点。使用Python中的 hashlib 模块可以方便地实现MD5加密。具体步骤如下:

1. 导入 hashlib 模块

```

import hashlib

```

2. 创建一个 hashlib 对象

```

m = hashlib.md5()

```

3. 更新哈希对象以便将输入字符串添加到哈希中

```

m.update(encoded_s)

```

4. 获取哈希对象的摘要

```

digest = m.hexdigest()

print(digest)

```

完整代码如下:

```

import hashlib

s = "hello"

encoded_s = s.encode("utf-8")

m = hashlib.md5()

m.update(encoded_s)

digest = m.hexdigest()

print(digest)

```

三、密文与明文的相互转换

MD5密文和明文之间的转化在工作中经常需要用到。下面给大家带来两个方向的转换方法。

1、MD5密文转明文

由于MD5密文是一种不可逆的操作,所以我们要通过字典破解或者暴力破解来操作,在实际的操作过程中,需要将MD5密文与已知明文进行比对,来判断输入的明文是否正确。

其实现在有很多的大佬都做出了在线的DM5解密工具,我们常用的就有https://www.sojson.com/encrypt.html。在进行解密的时候,要将明文通过上述方式进行编码,然后进行MD5加密,最后将加密后的结果与目标MD5密文进行比对。

2. 明文转MD5密文

明文转MD5密文是可逆的。所以我们只要通过MD5加密将明文转换为固定长度的MD5密文就可以了。下面介绍hashlib进行明文转MD5密文的操作。具体步骤如下

1. 将明文进行编码

```

s = "123456"

encoded_s = s.encode("utf-8")

```

2. 创建一个 hashlib 对象

```

m = hashlib.md5()

```

3. 更新哈希对象以便将输入字符串添加到哈希中

```

m.update(encoded_s)

```

4. 获取哈希对象的摘要

```

digest = m.hexdigest()

print(digest)

```

完整代码如下:

```

import hashlib

s = "123456"

encoded_s = s.encode("utf-8")

m = hashlib.md5()

m.update(encoded_s)

digest = m.hexdigest()

print(digest)

```

总结

对md5密文与明文之间的相互转换今天就介绍到这里拉,希望这边文章对广大朋友们有所帮助。

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/415.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:
md5

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
MD5如何解
MD5原理:保护数据安全的利器
MD5原理:保护数据安全的利器
浅谈md5中的加盐是什么意思
md5和base64的区别
简述md5算法的具体过程
md5和base64的区别
公历农历相互转换教程3步教你搞定
MD5是什么?作用是什么?
HTML5 Canvas弧线教程
最新文章
文件上传漏洞与防御 1548
前端构建工具选型指南:Webpack、Vite、Rollup、esbuild 深度对比 494
物联网时代2026年时序数据库选型指南 507
SaaS行业面临AI挑战:从“无限复用”到“灵活适应” 683
神经网络:从构造到模型训练全链路解析 554
一文吃透 Redis 核心存储结构:ziplist、listpack 与哈希表扩容 / 并发查询 982
Linux sudo提权完整指南:从基础用法到生产级安全配置 281
XSS 和 CSRF 的本质区别及开发防御全解析 390
JVM垃圾回收(GC)全维度解析:从原理到调优实战 420
Linux动静态库与ELF加载全解析:从实操制作到底层原理 539
最热文章
免费天气API,天气JSON API,不限次数获取十五天的天气预报 771514
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 708851
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 679457
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 562378
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 512346
Elasticsearch教程(四) elasticsearch head 插件安装和使用 484468
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 301586
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 247158
Elasticsearch教程(一),全程直播(小白级别) 232831
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 228099
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...