您现在的位置是:主页 > news > html5 css3酷炫网站/seo排名优化点击软件有哪些
html5 css3酷炫网站/seo排名优化点击软件有哪些
admin2025/5/24 2:34:44【news】
简介html5 css3酷炫网站,seo排名优化点击软件有哪些,宁波静态网站建设,如何做商业推广网站文章目录Python实现Base64编码(自己手工写)00. 关于Base64概述01. 解析写在最后的话:这里是一段防爬虫文本,请读者忽略。 本文原创首发于CSDN,作者IDYS 博客首页:https://blog.csdn.net/weixin_41633902/ 本…
html5 css3酷炫网站,seo排名优化点击软件有哪些,宁波静态网站建设,如何做商业推广网站文章目录Python实现Base64编码(自己手工写)00. 关于Base64概述01. 解析写在最后的话:这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本…
文章目录
- Python实现Base64编码(自己手工写)
- 00. 关于Base64概述
- 01. 解析
- 写在最后的话:
这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本文链接:https://blog.csdn.net/weixin_41633902/article/details/107812970
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!
Python实现Base64编码(自己手工写)
00. 关于Base64概述
Base64
编码表
索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 |
---|---|---|---|---|---|---|---|
0 | A | 17 | R | 34 | i | 51 | z |
1 | B | 18 | S | 35 | j | 52 | 0 |
2 | C | 19 | T | 36 | k | 53 | 1 |
3 | D | 20 | U | 37 | l | 54 | 2 |
4 | E | 21 | V | 38 | m | 55 | 3 |
5 | F | 22 | W | 39 | n | 56 | 4 |
6 | G | 23 | X | 40 | o | 57 | 5 |
7 | H | 24 | Y | 41 | p | 58 | 6 |
8 | I | 25 | Z | 42 | q | 59 | 7 |
9 | J | 26 | a | 43 | r | 60 | 8 |
10 | K | 27 | b | 44 | s | 61 | 9 |
11 | L | 28 | c | 45 | t | 62 | + |
12 | M | 29 | d | 46 | u | 63 | / |
13 | N | 30 | e | 47 | v | ||
14 | O | 31 | f | 48 | w | ||
15 | P | 32 | g | 49 | x | ||
16 | Q | 33 | h | 50 | y |
- 对输入的字符,每3个字节断开组成一组。对每一组中的三个字节,按照每
6个bit
断开成4
段 2**6 =64
,因此有了base64
编码表- 每一段当作一个
8bit
看其索引值,这个值就是Base64
编码表的索引值,找到对应字符。 - 再次取
3
个字节,同样处理,直到最后
- 演示
def
对应的ascii
码为:0x64
,0x65
,0x66
01100100
,01100101
,01100110
011001
,000110
,010101
,100110
25
,6
,21
,38
ZGVm
- 末尾的处理
- 正好
3
个字节,处理同上 - 剩下
1
个或者2
个字节,用0
补满3
个字节 - 补
0
的字节用=
表示
01. 解析
- 代码
# -*- coding:utf-8 -*-
#@Time : 2020/8/5 10:13
#@Author : idys
#@File : demo13.py
#@Software : PyCharmdef base64(src):ret = bytearray("", encoding="utf-8") # 定义一个bytearray 类型,可以修改的byte类型length = len(src)r = 0 # 记录补 0 个数,之后会替换为 =for offset in range(0, length, 3):if offset+3 <= length: #判断是否满足凑够三个字节,能凑够三个字节,则计算,不能凑够则补0triple = src[offset:offset+3]else:triple = src[offset:]r = 3 - len(triple) # 计算补0的个数triple = triple + "\x00"*rb = int.from_bytes(triple.encode(), "big") # 大端对齐for i in range(18, -1, -6):if i == 18:index = b >> i # 6个bit,6个bit一起else:index = b >> i & 0x3f # 0x3f 的值为 0011 1111ret.append(alphabet[index]) # 最佳Base64 编码for i in range(1, r+1):ret[-i] = 0x3D # 不够的部分补 =return retif __name__ == "__main__":alphabet = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"# base64 编码表print(base64("how areyou").decode("utf-8"))
- 运行结果
aG93IGFyZXlvdQ==
写在最后的话:
- 无论每个知识点的难易程度如何,我都会尽力将它描绘得足够细致
- 欢迎关注我的CSDN博客,IDYS’BLOG
- 持续更新内容:
linux基础 | 数据通信(路由交换,WLAN) | Python基础 | 云计算 - 如果你有什么疑问,或者是难题。欢迎评论或者私信我。你若留言,我必回复!
- 虽然我现在还很渺小,但我会做好每一篇内容。谢谢关注!