手算base64
base64人类群星闪耀时
CSP2021考了……
什么鬼……
不得不大骂一声——您有毒吧
base64是什么
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。
聪明的你肯定发现了,以上来自:base64_百度百科 (baidu.com)
base64的意义
有些情况下传输不可见字符不方便。比如一个纯文本协议,二进制中可能会出现被当做控制字符处理的部分。这样引起传输失败。
又由于每个地方的路由存在差异,无法统一,则需要base64这么一个编码方式。
因为base64都是可见字符(A~Z,a~z,0~9,+,/),所以不会出现以上问题。
请注意,base64并不是加密算法,不适用于加密通信。
base64的表格
首先,base64有以下字符对应表:
十进制下标 | 字符 |
---|---|
0 | A |
1 | B |
2 | C |
3 | D |
4 | E |
5 | F |
6 | G |
7 | H |
8 | I |
9 | J |
10 | K |
11 | L |
12 | M |
13 | N |
14 | O |
15 | P |
16 | Q |
17 | R |
18 | S |
19 | T |
20 | U |
21 | V |
22 | W |
23 | X |
24 | Y |
25 | Z |
26 | a |
27 | b |
28 | c |
29 | d |
30 | e |
31 | f |
32 | g |
33 | h |
34 | i |
35 | j |
36 | k |
37 | l |
38 | m |
39 | n |
40 | o |
41 | p |
42 | q |
43 | r |
44 | s |
45 | t |
46 | u |
47 | v |
48 | w |
49 | x |
50 | y |
51 | z |
52 | 0 |
53 | 1 |
54 | 2 |
55 | 3 |
56 | 4 |
57 | 5 |
58 | 6 |
59 | 7 |
60 | 8 |
61 | 9 |
62 | + |
63 | / |
Padding | = |
Padding是什么意思呢?我们到时候会举个例子。
base64的流程
我们先把字符按照ascii编码:
ascii | 字符 |
---|---|
01001111 | O |
01110010 | r |
01111010 | z |
由于考场上我们不可能找到ascii表,所以我们要熟记:
ascii | 字符 |
---|---|
Space | 32 |
0 | 48 |
A | 65 |
a | 97 |
如果考了其它的只能说出题人丧心病狂。
然后我们知道,ascii可以转化为8位二进制。那么我们可以得到以下表格:
然后我们按照每6位为一字符按照base64下标转换为新的字符串:
然后我们可以得到base64的新编码了!!
base64的Padding
那你肯定会说,如果不足刚好可以用6分开怎么办呢?
例如:
怎么办呢?我们可以选择补上0:
但是我们可能会发现,如果解码时混淆了怎么办呢?
所以我们需要加上Padding—— =
则变成:
如果我们要补上两位0:
然后你的一部分分就拿到了。
剩下就是解码了:
举个例子:cXB6Yw==
首先,对于原字符串,我们需要对其二进制编码。
如果结尾有 =
。那么我们需要相应的减去结尾的0。
如例子:二进制编码后为:
然后因为后面有两个等号,所以要删去0000:
结束,然后你就很容易的做出那道题了,耶!
base64真题
这个暴力模拟,当你看到第一位时就发现错了……
白搞了!!!!!啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!
这个也是第一次判倍数排除ac。然后发现bd倒数第五位不同,单独求出即可
白算了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
草稿可以看最上面那张图,---
上面的是第一题,下面的是第二题。
重申:您有毒!!
祝大家CSP2023 RP++。
……额,CSP2024,2025,2026,2027,总之都 RP++。
手算base64的更多相关文章
- URL安全的Base64编码
Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此时,采用Base64编码不仅比较简短,同时也具有不可 ...
- Base64编码
Base64编码 写在前面 今天在做一个Android app时遇到了一个问题:Android端采用ASE对称加密的数据在JavaWeb(jre1.8.0_7)后台解密时,居然解密失败了!经过测试后发 ...
- Android数据加密之Base64编码算法
前言: 前面学习总结了平时开发中遇见的各种数据加密方式,最终都会对加密后的二进制数据进行Base64编码,起到一种二次加密的效果,其实呢Base64从严格意义上来说的话不是一种加密算法,而是一种编码算 ...
- java单向加密算法小结(1)--Base64算法
从这一篇起整理一下常见的加密算法以及在java中使用的demo,首先从最简单的开始. 简单了解 Base64严格来说并不是一种加密算法,而是一种编码/解码的实现方式. 我们都知道,数据在计算机网络之间 ...
- URI编码解码和base64
概述 对于uri的编解码,在js中有3对函数,分别是escape/unescape,encodeURI/decodeURI,encodeURIComponent/decodeURIComponent. ...
- 通过HTML5的Drag and Drop生成拓扑图片Base64信息
HTML5 原生的 Drag and Drop是很不错的功能,网上使用例子较多如 http://html5demos.com/drag ,但这些例子大部分没实际用途,本文将搞个有点使用价值的例子,通过 ...
- Base-64 字符数组或字符串的长度无效等问题解决方案
项目特殊需要,调用ActiveX三维控件进行控件某一特殊部位的截图操作,这个截图保存由ActiveX控件控制保存到本地是没问题的,现在需要将这个截图上传到服务器,多人共享,就牵扯到需要读取本地文件…… ...
- android Base64 加密
一 Base64加密 import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStre ...
- When I see you again(加密原理介绍,代码实现DES、AES、RSA、Base64、MD5)
关于网络安全的数据加密部分,本来打算总结一篇博客搞定,没想到东西太多,这已是第三篇了,而且这篇写了多次,熬了多次夜,真是again and again.起个名字:数据加密三部曲,前两部链接如下: 整体 ...
- 网络安全——Base64编码、MD5、SHA1-SHA512、HMAC(SHA1-SHA512)哈希
据说今天520是个好日子,为什么我想起的是502.500.404这些?还好服务器没事! 一.Base64编码 Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之 ...
随机推荐
- 我用numpy实现了VIT,手写vision transformer, 可在树莓派上运行,在hugging face上训练模型保存参数成numpy格式,纯numpy实现
先复制一点知乎上的内容 按照上面的流程图,一个ViT block可以分为以下几个步骤 (1) patch embedding:例如输入图片大小为224x224,将图片分为固定大小的patch,patc ...
- 与 AI 同行,利用 ChatGLM 构建知识图谱
大家好,我是东方财富的一名算法工程师,这里分享一些利用大模型赋能知识图谱建设的一些实践. 为什么知识图谱需要大模型 在金融场景中,天然会有大量结构化的数据需要投入大量的人力去生产和维护,而这样的数据又 ...
- 如何在Avalonia11中设置自定义字体
如何在Avalonia11中设置自定义字体 由于avalonia默认的中文字体显示的效果不太理想,我们需要下载一些自定义的字体,来优化UI的显示效果.avalonia的官方文档地址. 对我在项目中运用 ...
- 【游记】NOIP2022 预备赛游记
Day -2 \(NOIP\) 就要来了,\(CSYZ\) 斥巨资给我们在 \(NOIP\) 正式考点举办了一场 \(NOIP\) 预备赛,真是太感动了~~ \(cy\) 说明天要颁奖,激动激动! D ...
- 根据图片搜索excel
问题描述:在excel使用中,当我们用大量的excel记录图文信息的时候,如果excel过多,比如成百上千个,里面都是包含大量的图片.这个时候如果想要根据图片快速找到这张图片可能被哪些excel包含, ...
- typroa文件迁移时的图片问题
如下图所示设置即可 会自动在同级目录中创建img文件夹,并存储图片
- javascript事件循环机制及面试题详解
javascript是单线程执行的程序,也就是它只有一条主线,所有的程序都是逐行"排队"执行,在这种情况下可能存在一些问题,比如说setTimeout.ajax等待执行的时间较长, ...
- [prometheus]配置alertmanager和钉钉告警
目录 prometheus发起告警的逻辑 节点 配置alertmanager 配置钉钉告警插件 配置supervisor守护进程 关联prometheus和alertmanager prometheu ...
- 基于C#的无边框窗体阴影绘制方案 - 开源研究系列文章
今天介绍无边框窗体阴影绘制的内容. 上次有介绍使用双窗体的方法来显示阴影,这次介绍使用API函数来进行绘制.这里使用的是Windows API函数,操作系统的窗体也是用的这个来进行的绘制. 1. 项目 ...
- 华为云GaussDB(for Influx)单机版上线,企业降本增效利器来了
本文分享自华为云社区<华为云GaussDB(for Influx)单机版上线,企业降本增效利器来了>,作者:GaussDB 数据库 . 1.背景 华为云GaussDB(for Influx ...