密码学:编码概述.

news2024/9/25 23:12:24

密码学:编码概述.

目录:

密码学:编码概述.

编码的概念:

Base编码:

(1)Base64 

(2)Base32 和 Base16

(3)uuencode

(4)xxencode

其他编码

(1)URL编码

(2)jjencode和aaencode


编码的概念:

编码 (encode)和解码 (decode)是个相当广泛的话题,涉及计算机对信息处理的根本方式。最常用的编码是ASCII(美国信息交换标准代码),包含国际通用的大小写字母、数字、常见符号等,是互联网的通用语言。

另一种广为人知的编码是摩斯电码,它是一种时断时续的信号代码,是一种早期的数字化通信形式不同于只使用0和1两种状态的二进制代码,摩斯电码的代码包括如下:

◆ 点(·) : 基本单位;

◆ 划(-) : 为3个点的长度;

◆ 个字母或数字内,点与划之间的间隔: 2个点的长度;

◆ 字母(或数字) 之间的间隔: 7个点的长度;

一般来说,编码的目的是对原始信息进行一定处理,用于更方便地进行传输、存储等操作。但是编码不同于加密,并不是为了隐藏信息,也并没有使用到密钥等额外信息,只需知道编码方式就能得到原内容。

这种编码方式能把书面字符变为信号,大大方便了有线电报系统的通信.


Base编码:

(1)Base64 

Base64 是一种基于64个可打印字符来表示二进制数据的表示方法。2^6=64,所以每 6bit 为一个单元,对应某个可打印字符。3 字节有 24bit ,对应 4 个 Base64 单元,即 3 字节任意二进制数据可由 4 个打印字符来表示。在 Base64 中,可打印字符包括字母 A~Z、a~z 和数字 0~9,共 62 个字符,以及 +、/ 字符。Base64 常用于只能处理文本数据的场合,表示、传输、存一些二进制数据,包括 MIME 电子邮件、XML 复杂数据等。

在 base64 转换的时候,3 字节的数据先后放入一个 24 位的缓冲区中,先来的字节占高位 。

数据不足3字节,缓冲器中剩下的位用0补足。每次取出 6bit,按照其值选择中的字符作为编码后的输出,直到全部输入数据转换完成。若原数据长度不是 3 的倍数且剩下1个输入数据,则在编码结果后加 2 个 “ = ”,若剩下 2 个输入数据,则在编码结果后加 1 个 “=”。所以,识别 Base64 编码的一种方法是看末尾是否有 “ = ” 。但是这种识别方法并不是万能的,当编码的字符长度刚好是3的倍数时,编码后的字符串末尾不会出现 “=”

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

(2)Base32 和 Base16

Base 系列中还有 Base32 和 Base16 ,其实 Base32 / Base16 与 Base64 的目的一样,只是具体的编码规则不同。Base32 编码将二进制文件转换成 32 个 ASCII 字符组成的文本,转换表为

ABCDEFGHIJKLMNOPQRSTUVWXYZ234567

Base16 编码则将二进制文件转换成由 16 个字符组成的文本,这 16 个字符为 0~9和 A~F,其实就是 Hex 编码。


(3)uuencode

uuencode 衍生自 “unix-to-unix encoding” ,曾是 UNIX 系统下将二进制的资料借由 UUCP 邮件系统传输的一个编码程式,是一种二进制到文字的编码。uuencode 将输入字符以每3字节为单位进行编码,如此重复。如果最后剩下的字符少于 3 字节,不足部分用 0 补齐。与 Base64 一样, uuencode 将这 3 字节分为4组,每组以十进制数表示,这时出现的数字为 0~63 。此时将每个数加上 32,产生的结果刚好落在 ASCI 可打印字符的范围内。

经过 uuencode 编码过后的字符,可以看到 uuencode 的特征: 特殊符号很多.


(4)xxencode

xxencode 与 Base64 类似,只不过使用的转换表不同:

+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

只是多了“ - ”字符,少了“ / ”字符,而且 xxencode 末尾使用的补全符号为“ + ”,不同于Base64 使用的“ = ”.


其他编码

(1)URL编码

URL编码又称为 百分号编码。如果一个保留字符在特定上下文中具有特殊含义,且URI中必须使用该字符用于其他目的,那么该字符必须进行编码。URL编码一个保留字符,需要先把该字符的ASCII编码表示为两个十六进制的数字,然后在其前面放置转义字符“ % ”,置入URI中的相应位置(非ASCI字符需要转换为 UTF-8 字节序,然后每字节按照上述方式表示)。例如,如果“ / ”用于URI的路径成分的分界符,则是具有特殊含义的保留字符。如果该字符需要出现在URI一个路径成分的内部,,则应该用“ %2F ”或“ %2f ”来代替“ / ".


(2)jjencode 和 aaencode

jjencode 和 aaencode 都是针对 JavaScript 代码的编码方式。前者是将 JS 代码转换成只有符号的字符串,后者是将 JS 代码转换成常用的网络表情,本质上是对 JS 代码的一种混淆。

jjencode 编码后的效果:(大多都是 $$$ 号)

aaencode 编码后的效果:(大多都是 表情

        

       

        

学习书籍:从0到1:CTFer成长之路..

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/495242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux怎么查看centos版本

Linux怎么查看centos版本 1、 lsb_release -a LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息。 lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics…

Sublime3的打开方式添加到右键菜单

http://jingyan.baidu.com/article/cdddd41c68c32753ca00e157.html Sublime Text 安装完成之后没有右键打开方式,打开文件很不方便。为了快捷打开文件,可以在系统的右键上添加Sublime Text打开方式。如图所示 百度经验:jingyan.baidu.com 工具/原料 Sub…

第五章:平面解析几何

1.平面向量 1.向量的概念 1.有向线段:规定了起点和终点的线段叫做有向线段。例如以A为起点,B为终点的有向线段记作: 2.有向线段的要素:方向和长度。其中方向是从起点到终点,长度是线段AB的长度,记作:2.向量 1.定义:既有大小又有方向的量叫做向量。 2.表示法:向量可用…

vue+Nodejs+Koa搭建前后端系统(四)--安装MYSQL

前言 计算机系统为Windows 10 专业版MYSQL采用压缩版安装,版本为 v8.0.32 下载MYSQL数据库 MYSQL官网地址:https://www.mysql.com/ DOWNLOADS - MySQL Community Server 下载压缩版 ZIP Archive表示压缩版(相当于绿色版)&…

PointPillars Fast Encoders for Object Detection from Point Clouds 论文学习

论文地址:PointPillars: Fast Encoders for Object Detection from Point Clouds Github 地址:PointPillars: Fast Encoders for Object Detection from Point Clouds 1. 解决了什么问题? 点云目标检测是自动驾驶领域的一个重要方向。自动…

机智云全品类家电家居智能化解决方案亮相AWE,轻量化方案赋能产品快速升级

随着物联网、AI技术在家电家居行业应用愈发成熟,软硬一体的低成本轻量化解决方案越来越受到中小家电企业青睐。作为一线家电品牌首选的物联网平台,机智云Gizwits积累沉淀了10年家电AIoT研发和实施运维经验,携全品类家电家居智能化解决方案亮相…

怎么让chatGTP写论文-chatGTP写论文工具

chatGTP如何写论文 ChatGPT是一个使用深度学习技术训练的自然语言处理模型,可以用于生成自然语言文本,例如对话、摘要、文章等。作为一个人工智能技术,ChatGPT可以帮助你处理一些文字内容,但并不能代替人类的创造性思考和判断。以…

796. 子矩阵的和(C++和Python3)——2023.5.6打卡

文章目录 QuestionIdeasCode Question 输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2 ,表示一个子矩阵的左上角坐标和右下角坐标。 对于每个询问输出子矩阵中所有数的和。 输入格式 第一行包含三个整数…

业务连续性

业务连续性 业务连续性管理业务连续性的概念业务连续性计划建设过程组织管理业务影响分析(BIA)BIA-1确定业务优先级BIA-2风险分析BIA-3资产优先级划分 制定及批准实施制定及批准实施-风险降低制定及批准实施-风险转移制定及批准实施-风险规避与风险接受制…

SuperMap GIS基础产品移动GIS FAQ集锦(2)

SuperMap GIS基础产品移动GIS FAQ集锦(2) 【iMobile】AR加载场景不显示 【问题原因】 1.场景切的缓存纹理压缩格式不是移动端支持的; 2.场景原点位置太远,加载后显示效果很小不起眼看不清 【解决方法】 1.确认场景缓存纹理压缩格…

gdal2tiles切图

gdal2tiles切图 文章目录 gdal2tiles切图切图流程瓦片合并参考链接 切图流程 从原始数据获取所需的最高级别的瓦片,更低级的瓦片只需从这些最高级瓦片一层一层生成. 这样速度更快:因为最高级的瓦片只能利用gdal从原始tif中获取,其速度受tif尺寸影响很大,且从tif上取得级别越低,…

MySQL安装配置教程(保姆级,包含环境变量的配置)适合小白

文章目录 MySQL安装教程下载链接官网下载安装配置环境变量配置 MySQL安装教程 下载链接 点击下载链接 官网下载 官网下载 2.官网下载 3.官网下载 4.官网下载 5.官网下载 这里我们无需注册,只需要点下载就好 安装配置 1.安装配置   选择第一个 2.安装配置…

FreeRTOS 空闲任务

文章目录 一、空闲任务详解1. 空闲任务简介2. 空闲任务的创建3. 空闲任务函数 二、空闲任务钩子函数详解1. 钩子函数2. 空闲任务钩子函数 三、空闲任务钩子函数实验 一、空闲任务详解 1. 空闲任务简介 当 FreeRTOS 的调度器启动以后就会自动的创建一个空闲任务,这…

【C++从0到王者】第二站:类和对象(中)构造函数与析构函数

文章目录 一、C的六个默认成员函数二、构造函数和析构函数1.构造函数①构造函数的概念②构造函数的特性 2.析构函数①析构函数的概念②析构函数的特性 3.构造函数的其他特性4.构造函数总结5.一些不写构造函数的样例6.析构函数的其他特性 一、C的六个默认成员函数 如果一个类中什…

go与其他语言区别,go与Java、Python有什么区别

零、go与其他语言 0、什么是面向对象 在了解 Go 语言是不是面向对象(简称:OOP) 之前,我们必须先知道 OOP 是啥,得先给他 “下定义” 根据 Wikipedia 的定义,我们梳理出 OOP 的几个基本认知: …

【转存】Go语言设计模式

导语| 设计模式是针对软件设计中常见问题的工具箱,其中的工具就是各种经过实践验证的解决方案。即使你从未遇到过这些问题,了解模式仍然非常有用,因为它能指导你如何使用面向对象的设计原则来解决各种问题,提高开发效率&#xff0…

[漏洞分析] 用chatGPT分析CVE-2023-0386 overlay内核提权

文章目录 漏洞简介环境搭建漏洞原理补丁分析命名空间用户命名空间 overlay文件系统原理创建一个overlay文件系统 漏洞触发逻辑 漏洞利用fuse文件系统漏洞利用touch命令冷知识exp 总结参考 本文的理论知识(命名空间、overlay文件系统、fuse文件系统等)均来…

档案馆库房环境温湿度空气质量等相关要求

档案库房防潮工作,就是要将库内相对湿度控制在规定的范围之内,这个范围就是由建设部和国家档案局共同批准颁布的强制性行业标准《档案馆建设设计规范》对档案库房的温湿度范围已作出明确的要求:温度14℃~24℃,湿度45%&…

深入理解Java虚拟机——垃圾回收算法

1.前言 垃圾回收需要完成的三件事 首先我们需要明白垃圾回收需要完成的三件事: 哪些内存需要回收 堆内存中的对象所使用的内存方法区中的废弃的常量以及不再使用的类型 什么时候回收 当对象死亡方法区中某些内容(常量和类型)不再被使用 如…

AI绘画天花板——Midjourney注册使用保姆级教程(5月5日验证有效)

大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加我,备注:aigc,拉你进群。 现在市面上AI绘图大概有三大阵营:Midjourney、Stable Diffusion,还有一个就是OpenAI实…