ctf笔记:编码

news2024/11/17 10:50:07

常见编码

博客链接:https://www.blog.23day.site/articles/76

计算机中的数据都是按字节存储。一个字节(Byte)由8个二进制位组成(bit)。(组成范围是0~255(28))一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。

ASCII编码

简述

ASCII码是对英语字符与二进制位之间的关系,做了统一规定。

基本的ASCII字符集共有128个字符,其中有96个可打印字符,包括常用的字母、数字、标点符号等,

例如

空格SPACE是32(二进制00100000)
数字0是48(二进制00110000)
大写字母A是65(二进制01000001)
32个控制字符(不能打印出来)

这128个符号,只占用了一个字节的后面7位,最前面的一位统一规定为0。

特征

只含有数字

  • 0-9,49-57
  • A-Z,65-90
  • a-z,97-122

举例

明文:hello,world.
十六进制:0x680x650x6c0x6c0x6f0xff0c0x770x6f0x720x6c0x640x2e
十进制:1041011081081112551211911111410810046
二进制:011010000110010101101100011011000110111100101100011101110110111101110010011011000110010000101110

在线工具

  • https://www.107000.com/T-Ascii
  • http://www.ab126.com/goju/1711.html

ASCII码对照表

img

base编码

base16/base32/base64/base58/base85/base100

简述

  • Base16编码是将二进制文件转换成由16个字符组成的文本

  • base32的编码表是由(A-Z、2-7)32个可见字符构成,“=”符号用作后缀填充。

  • base64的编码表是由(A-Z、a-z、0-9、+、/)64个可见字符构成,“=”符号用作后缀填充。

  • base58的编码表相比base64少了数字0,大写字母I,O,小写字母l(这个是L),以及符号‘+’和‘/’

  • base91的密文由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成

  • Base100编码/解码工具(又名Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。

举例

明文:hello,world.123456

base16:68656C6C6F2C776F726C642E313233343635
特征大写字母(A-Z)和数字(0-9),不用‘=’补齐。
base32:NBSWY3DPFR3W64TMMQXDCMRTGQ3DK===
特征大写字母(A-Z)和数字(2-7),不满5的倍数,用‘=’补齐。
base64:aGVsbG8sd29ybGQuMTIzNDY1
特征大小写字母(A-Z,a-z)和数字(0-9)以及特殊字符‘+’,‘/’,不满3的倍数,用‘=’补齐。
base58:2smDFYXWKE8vc8XA8dadEYcSqcQb
特征相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号,最主要的是后面不会出现'='。
base85:BOu!rDst>tGAhM<A1fSl1GgsI
特征特点是奇怪的字符比较多,但是很难出现等号
明文:hello,world.123456
base91:TPwJh>go2Tv!_,aRA2IbLmA
特征由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
不支持中文。
base100:👟👜👣👣👦📦💳💃👮👦👩👣👛🐥🐨🐩🐪🐫🐬🐭
特征就是一堆Emoji表情

在线编码

  • base16/base32/base64
  • base58
  • base85
  • base91
  • base100

MD5、SHA1、HMAC、NTLM等类似加密型

1、MD5

简述

一般MD5值是32位由数字“0-9”和字母“a-f”所组成的字符串,字母大小写统一;如果出现这个范围以外的字符说明这可能是个错误的md5值,就没必要再拿去解密了。

16位值是取的是8~24位。

特征

有固定长度,一般是32位或者16位

由数字“0-9”和字母“a-f”组成

举例

明文:hello,world.123456
md5:(hello,world.123456,32)=5189503aae1b1c0a6fbf7ea9e3128ab0
md5:(hello,world.123456,16)=ae1b1c0a6fbf7ea9

在线工具

  • MD5解密1
  • MD5解密2

2、SHA1

简述

SHA1是一种密码散列函数,SHA1可以生成一个被称为消息摘要的160位,20字节的散列值,散列值通常的呈现形式为40位十六进制数。这种加密和MD5类似。

特征

有固定长度,为40位的字符串

举例

明文:hello,world.123456
sha1:(hello,world.123456)=0179303b8f08fbc3d16cd23a4be5828790e12375

在线加解密

  • SHA1加解密1

  • SHA1加解密2

3、HMAC

简述

HMAC(Hash-basedMessageAuthenticationCode)常用于接口签名验证,这种算法就是在前两种加密的基础上引入了秘钥,而秘钥又只有传输双方才知道,所以基本上是破解不了的。

特征

和MD5类似,但是有秘钥。

在线加解密

  • HAMC加解密

4、NTLM

简述

这种加密是Windows的哈希密码,是WindowsNT早期版本的标准安全协议。与它相同的还有DomainCachedCredentials(域哈希)。

在线解密

  • NTML加解密

5、类似加密穷举

算法长度
md532/16
sha140
sha25664
sha512128
adler328
crc328
crc32b8
fnv1328
fnv16416
fnv1a328
fnv1a6416
gost64
gost-crypto64
haval128,332
haval128,432
haval128,532
haval160,340
haval160,440
haval160,540
haval192,348
haval192,448
haval192,548
haval224,356
haval224,456
haval224,556
haval256,364
haval256,464
haval256,564
joaat8
md232
md432
ripemd12832
ripemd16040
ripemd25664
ripemd32080
sha22456
sha3-22456
sha3-25664
sha3-38496
sha3-512128
sha38496
sha512/22456
sha512/25664
snefru64
snefru25664
tiger128,332
tiger128,432
tiger160,340
tiger160,440
tiger192,348
tiger192,448
whirlpool128
mysql老MYSQL数据库用的,16位,且第1位和第7位必须为0-8
mysql540
NTLM32
DomainCachedCredentials32

AES、DES、RC4、Rabbit、3DES型加密

简述

以上都是非对称性加密算法,就是引入了密钥,密文特征与Base64类似,

在线解密

  • 非对称加密

Unicode编码

简述

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。

它用两个字节来编码一个字符,字符编码一般用十六进制来表示.

举例

Unicode有以下四种编码方式

明文hello,world.

&#x [hex]:&#x0068;&#x0065;&#x006C;&#x006C;&#x006F;&#xFF0C;&#x0077;&#x006F;&#x0072;&#x006C;&#x0064;&#x002E;

&# [hex]:&#00104;&#00101;&#00108;&#00108;&#00111;&#65292;&#00119;&#00111;&#00114;&#00108;&#00100;&#00046;

\u [hex]:\U0068\U0065\U006C\U006C\U006F\U002C\U0077\U006F\U0072\U006C\U0064\U002E

\u+ [hex]:\U+0068\U+0065\U+006C\U+006C\U+006F\U+FF0C\U+0077\U+006F\U+0072\U+006C\U+0064\U+002E

在线编码

  • 四种方式都有

  • unicode16进制

  • unicode

  • 常见\u方式

HTML实体编码

简述

字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。

举例

明文:hello,world.
十进制:&#104;&#101;&#108;&#108;&#111;&#65292;&#119;&#111;&#114;&#108;&#100;&#46;
十六进制:&#x68;&#x65;&#x6C;&#x6C;&#x6F;&#xFF0C;&#x77;&#x6F;&#x72;&#x6C;&#x64;&#x2E;

在线加解密

  • HTML实体加解密1

  • HTML实体加解密2

Escape、Unescape编码(%u)

简述

Escape/Unescape加密解码/编码解码,又叫%u编码,其实就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉”%u”后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!

举例

明文:hello,world.
密文:%u0068%u0065%u006c%u006c%u006f%uff0c%u0077%u006f%u0072%u006c%u0064%u002e

在线加解密

  • Escape编码/解码

URL编码

简述

url编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是’20’,那么urlencode编码结果是:%20。

特征

编码前面都有%

在线加解密

  • URL加解密

Hex编码

简述

Hex 全称 是Intel HEX。Hex文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。

特征

十六进制(Hexadecimal)

它是计算机中数据的一种表示方法,由0-9,A-F组成,字母不区分大小写

与10进制的对应关系是0-9不变,A-F对应10-15。

举例

明文:hello,world.
密文(带%):%68%65%6c%6c%6f%ef%bc%8c%77%6f%72%6c%64%2e
密文(不带%):68656C6C6FEFBC8C776F726C642E

在线加解密

  • 不带%

  • 带%

js专用加密

1、JS颜文字加密

特征

一堆颜文字构成的js代码,在F12中可直接解密执行

在线加密

  • JS颜文字加密
  • 解密在F12的console中

2、Jother编码

简述

jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。

特征

只用**!+()[]{}**这八个字符就能完成对任意字符串的编码。可在F12中解密执行

在线解密

  • Jother

3、JSFuck编码

特征

与jother很像,只是少了{}

在线加密

  • JSFuck加密

  • 解密在F12的console中

Quoted-printable编码

简述

它是多用途互联网邮件扩展(MIME)一种实现方式。有时候我们可以邮件头里面能够看到这样的编码;

特征

任何一个8位的字节值可编码为3个字符一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值.

举例:

明文:天上掉下了个猪八戒
密文:=E5=A4=A9=E4=B8=8A=E6=8E=89=E4=B8=8B=E4=BA=86=E4=B8=AA=E7=8C=AA=E5=85=AB=E6=88=92

在线编码

  • 在线编码

XXencode

简述

XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6bit为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0到63之间。以所对应值的位置字符代替。

特征

字符范围是0-9,A-Z,a-z,一共64个字符。跟base64打印字符相比,就是UUencode多一个“-”字符,少一个”/”字符。

举例

明文:hello,world.
密文:BO4JgP4yXf5RjQalY9U++

在线加解密

  • UUencode加解密

UUencode

简述

UUencode是一种二进制到文字的编码,最早在unix邮件系统中使用,全称Unix-to-Unixencoding,UUencode将输入文本以每三个字节为单位进行编码,如果最后剩下的资料少于三个字节,不够的部份用零补齐。三个字节共有24个Bit,以6-bit为单位分为4个组,每个组以十进制来表示所出现的字节的数值。这个数值只会落在0到63之间。然后将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符(32-空白…95-底线)的范围之中。

举例

明文:hello,world.
密文:,:&5L;&\L=V]R;&0N

在线解密&工具

  • UUencode1
  • UUencode2

aaencode编码

特征

将JS代码转换成常用的网络表情

举例

image-20221127142418367

在线加解密

  • aaencode1

  • aaencode2

  • aaencode3

jjencode编码

特征

将JS代码转换成只有符号的字符串

举例

image-20221127142516509

在线加解密

  • jjencode加密

  • jjencode解密

brainfuck编码

简述

Brainfuck是一种极小化的计算机语言,按照”Turingcomplete(完整图灵机)”思想设计的语言,它的主要设计思路是用最小的概念实现一种“简单”的语言。

特征

BrainFuck语言只有八种符号,所有的操作都由这八种符号**(><±.,[])**的组合来完成。

举例

明文:hello,world.
密文:+++++ +++++ [->++ +++++ +++<] >++++ .---. +++++ ++..+ ++.<+ +++++ ++[->
----- ---<] >---. <++++ ++++[ ->+++ +++++ <]>++ +++++ ++++. ----- ---.+
++.-- ----. ----- ---.< +++++ ++[-> ----- --<]> ----- .<

在线加解密

  • Brainfuck1

  • Brainfuck2

莫尔斯电码

简述

摩尔斯电码(MorseCode)是由美国人萨缪尔·摩尔斯在1836年发明的一种时通时断的且通过不同的排列顺序来表达不同英文字母、数字和标点符号的信号代码,摩尔斯电码主要由以下5种它的代码组成

  1. 点(.)
  2. 划(-)
  3. 每个字符间短的停顿(通常用空格表示停顿)
  4. 每个词之间中等的停顿(通常用/划分)
  5. 以及句子之间长的停顿

莫尔斯电码对应表

A**.-**B**-…**C**-.-.**D**-…**E**.**F**…-.**G**–.**H**….**I**…**J**.—**
K**-.-**L**.-…**M**–**N**-.**O**—**P**.–.**Q**–.-**R**.-.**S**…**T**-**
U**…-**V**…-**W**.–**X**-…-**Y**-.–**Z**–…**0**—–**1**.—-**2**…—**3**…–**
4**….-**5**……**6**-….**7**–…**8**—…**9**—-.**..-.-.-,–…–?…–…--….-
=-…-:—…;-.-.-.(-.–.)-.–.-/-…-..-…-.$…-…-.—-..-.-…
_…–.-@.–.-.!—.!-.-.–+.-.-.~.-…#…-.-&.…⁄**-…-.**

特征

由**.-“空格”/**表示。

举例

莫尔斯电码

在线加解密

  • 莫斯电码1

  • 莫斯电码2

社会主义编码

特征

字符全部是社会主义核心价值观。

举例

image-20221127142715385

在线加解密

  • 社会主义编码

与佛论禅

特征

密文以”佛曰如是我闻”开头,密文一般是与关佛经的汉字

举例

image-20221127142753562

在线工具

  • 与佛论禅

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

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

相关文章

推荐系统学习笔记-隐语义模型

由来 该算法最早在文本挖掘领域被提出&#xff0c;用于找到文本的隐含语义。 核心思想是通过隐含特征(latent factor) 联系用户兴趣和物品。 参数 f&#xff1a;隐向量维度&#xff0c;决定隐向量表达能力强弱 n&#xff1a;用户数 m&#xff1a;物品数 求解方法&#xff1a;…

ADI Blackfin DSP处理器-BF533的开发详解57:DSP控制ADV7180采集图像到LCD显示(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 代码实现功能 代码实现了采集一帧 720625 尺寸的 P 制 CVBS 信号源&#xff0c;以 YUYV422 的数据格式保存&#xff0c;通过 MDMA 将奇偶场数据交…

【轻松掌握C语言】文件操作

目录 一、为什么使用文件&#xff1f; 二、什么是文件&#xff1f; 1、程序文件 2、数据文件 3、文件名 三、文件操作 1、文件指针 2、文件打开与关闭 . 3、文件的顺序读写 4、文件的随机读写 5、文本文件和二进制文件 6、文件读取结束判定 四、文件缓冲区 一、…

C++ Reference: Standard C++ Library reference: Containers: map: map: rbegin

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/rbegin/ 公有成员函数 <map> std::map::rbegin C98 reverse_iterator rbegin(); const_reverse_iterator rbegin() const; C11 reverse_iterator rbegin() noexcept; const_reverse_iterator rbegin(…

这个大力神杯,梅西已足足等了16年,AI预测:阿根廷冠军

潘帕斯雄鹰和高卢雄鸡的决战&#xff0c;在三十多小时后即将上演。AI预测&#xff1a;胜率接近&#xff0c;阿根廷略高。 12月18日&#xff0c;卡塔尔世界杯总决赛将正式开战。 由卫冕军法国对上寻求队史第三冠的阿根廷&#xff0c;同时也是两位顶尖球星兼巴黎圣日耳曼队友梅…

LeetCode | 二叉树高频面试算法题汇总【速来】

小伙子&#xff0c;来给我✍棵树【LeetCode】144.二叉树的前序遍历C版本C语言版本&#xff08;递归算法展开图&#xff09;【LeetCode】94.二叉树的中序遍历C版本C语言版本【LeetCode】145.二叉树的后序遍历C版本C语言版本【LeetCode】102.二叉树的层序遍历DSF——深度优先搜索…

Linux 之centos7:一、Linux安装

Linux 之centos7 1.Linux简介 ​ Linux内核最初只是由芬兰人李纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 ​ Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户、多任务、支持多…

C#,基于视频的目标识别算法(Moving Object Detection)的原理、挑战及其应用

本文概述了基于监控视频之连续帧信息的各种目标识别算法及其存在的问题与挑战&#xff0c;结合实际应用开发的工作&#xff0c;文中给出了实验性基于帧差算法和改进型背景算法的非人工智能目标识别算法的实际效果。 目标识别算法一直并将持续成为人工智能研究与应用的重点&…

交换机设备上的G口、F口、E口、S口区别是什么?一台交换机有哪些接口呢?每个接口都有哪些作用?

交换机设备上的G口、F口、E口、S口区别是什么? 一台交换机有哪些接口呢?每个接口都有哪些作用? 交换机的主要功能包括:学习功能、转发过滤和消除回路。 学习功能:以太网交换机知道连接到每个端口的设备的MAC地址,将该地址与相应的端口进行映射,并存储在交换机缓存的MA…

jsp+ssm计算机毕业设计大学生互助系统【附源码】

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JSPSSM mybatis Maven等等组成&#xff0c;B/S模式 Mave…

点云 3D 目标检测 - VoxelNet(CVPR 2018)

点云 3D 目标检测 - VoxelNet&#xff08;CVPR 2018&#xff09;摘要1. 引言1.1 相关工作1.2 贡献2. VoxelNet2.1 VoxelNet架构2.1.1 特征学习网络2.1.2 卷积中层2.1.3 区域提案网络2.2 损失函数2.3 高效实施3. 训练详情3.1 网络详细信息3.2 数据增强4. 实验4.1 KITTI验证集评估…

【算法】动态规划 ⑧ ( 动态规划特点 )

文章目录一、动态规划特点1、求解类型2、方向性3、动态规划状态选择4、动态规划方程设计一、动态规划特点 1、求解类型 求解类型 : 动态规划 必须是求 最值 , 可行性 , 方案数 , 三者之一 , 如果求其它内容 , 则不能使用动态规划算法 ; 求最值 : 最大值 , 最小值 等 ; 大规模问…

[附源码]Node.js计算机毕业设计工资管理系统PPTExpress

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

加入CSDN的第一百天,也是学C的第一百天

加入CSDN的一百天 1.学习总结 2.个人感悟 1.学习总结 学习c语言已经有100天&#xff0c;从一个初出茅庐的无知青年&#xff0c;敲出第一个hello world 都激动的不行&#xff0c;到现在&#xff1a; 常见的数据类型&#xff0c; 变量的命名方式&#xff0c; 变量的分类 到变…

[2022-12-17]神经网络与深度学习 hw9 - bptt

contentshw9 - Back Propagation Through Timetask1题目内容题目思路题目解答题目总结task2题目内容题目思路题目解答题目总结hw9 - Back Propagation Through Time task1 题目内容 推导RNN反向传播算法BPTT。 题目思路题目解答 首先我们要清楚RNN进行前向传播的过程&…

0. Canal 的安装和使用

我看过一场风景&#xff0c;后来我才知道&#xff0c;那是我人生中最美的一段时光。 我爱的人&#xff0c;爱我的人&#xff0c;都能度过这场新型感冒&#xff0c;那该多好。 Canal 的官网: https://github.com/alibaba/canal Canal 能干什么 为什么出现 Canal Canal 是阿里…

[ 数据结构 -- 手撕排序算法第二篇 ] 冒泡排序

文章目录前言一、常见的排序算法二、冒泡排序的实现2.1 基本思想2.2 单趟冒泡排序2.2.1 思路分析2.2.2 单趟代码实现三、冒泡排序的实现五、冒泡排序的时间复杂度5.1 最坏情况5.2 最好情况优化六、冒泡排序的特性总结总结前言 手撕排序算法第一篇&#xff1a;插入排序&#xf…

截止12.17 bitahub踩坑,mask无数次更改,lama代码的那些痛,羊了个羊,imwrite不生效

前面那篇跑出了STCN&#xff0c;倒是STCN熟悉了很多了 对bitahub&#xff0c;需要注意一个问题 要进ssh请用debug卡&#xff01;&#xff01;&#xff01;&#xff01; 要进ssh请用debug卡&#xff01;&#xff01;&#xff01;&#xff01; 要进ssh请用debug卡&#xff01;&…

AQS-semaphoreCyclicBarrierCountDownLatch源码学习

上文&#xff1a;jdk-BlockingQueue源码学习源码下载&#xff1a;https://gitee.com/hong99/jdk8semaphore&cyclicbarrier&CountDownLatch的介绍semaphore基础功能semaphore简称信号量&#xff0c;主要用于控制访问特定资源的线程数目&#xff0c;底层用的是AQS的状记s…

[附源码]Python计算机毕业设计Django万佳商城管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…