感谢丁神的总结博客链接

常见编码

下面以加密下方flag为例

flag{QLNU_yyds!}

base家族

工具:base全家桶http://wiki.qlnuctf.cn/course/13/task/684/show

base16(十六进制)

666C61677B514C4E555F79796473217D

base32

MZWGCZ33KFGE4VK7PF4WI4ZBPU======

base58

base62

http://decode-base62.nichabi.com/?input

base64

ZmxhZ3tRTE5VX3l5ZHMhfQ==

base85

Ao(mgHVmI3<F:#sA9/oB

base91

@iH<,{b*+6Gs1QejHEAL

base92

F#S<YR]=h7^%q3jIJN2g

base64x-转表base64

base64 的乱序版
参考链接

import base64
import stringstr1 = "x2dtJEOmyjacxDemx2eczT5cVS9fVUGvWTuZWjuexjRqy24rV29q"string1 = "ZYXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/"
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"print (base64.b64decode(str1.translate(str.maketrans(string1,string2))))

str1是要解密的代码
string1是改过之后的base64表
利用cyberchef 工具也是可以的

rot13

aes-des-3des-rc4-rabbit

需要密码,格式很像base,但是是以U2开头的

U2FsdGVkX1/SvkGkNmN/u52RqOQ=

EBCBIC

啌亣捆咇凁攨mpm檯剤仯蝠蝰?

使用010解密即可

flag{we1c0me_t0_redhat2021}

例题:2021红帽-签到

gzip

eJxLy0lMr05KSTEwM0pOTrFMNk9ONkhJNjYwNDI3SLVMSbJMMk5NrgUA9cQMNg==

eJx开头的等号结尾的

网站解密:https://codebeautify.org/gzip-decompress-online

jwt

因为 jwt 分为三部分,之间通过点号分隔,前两部分就是 base64 编码的所以直接可以 base64 解码

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

辨别方法:eyJ

解密网站:https://jwt.io/

希尔密码

码表

abcdefghijklmnopqrstuvwxyz ,.

常见密钥为一个网址,比如

解密网址:http://www.atoolbox.net/Tool.php?Id=914

云影密码

有1,2,4,8这四个数字,可以通过加法来用这四个数字表示0-9中的任何一个数字,列如0=28, 也就是0=2+8,同理7=124, 9=18。这样之后再用1-26来表示26个英文字母,就有了密文与明文之间的对应关系。引入0来作为间隔,以免出现混乱。所以云影密码又叫“01248密码”

#!/usr/bin/python
# -*- coding=utf8 -*-
"""
# @Author : pig
# @CreatedTime:2019-11-2423:54:02
# @Description : https://www.jianshu.com/p/b5aa5cf60f83
"""def de_code(c):dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]flag = []c2 = [i for i in c.split("0")]for i in c2:c3 = 0for j in i:c3 += int(j)flag.append(dic[c3 - 1])return flagdef encode(plaintext):dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]m = [i for i in plaintext]tmp = [];flag = []for i in range(len(m)):for j in range(len(dic)):if m[i] == dic[j]:tmp.append(j + 1)for i in tmp:res = ""if i >= 8:res += int(i/8)*"8"if i%8 >=4:res += int(i%8/4)*"4"if i%4 >=2:res += int(i%4/2)*"2"if i%2 >= 1:res += int(i%2/1)*"1"flag.append(res + "0")print ("".join(flag)[:-1])c = input("输入要解密的数字串:")
print (de_code(c))
m_code = input("请输入要加密的数字串:")
encode(m_code)

PGP词汇表

链接https://baike.baidu.com/item/PGP%E8%AF%8D%E6%B1%87%E8%A1%A8/22718129

UUencode

Uuencode将输入资料以每三个字节为单位进行编码,如此重复进行。如果最后剩下的资料少于三个字节,不够的部份用零补齐,很像base64
特点:包含!”#¥%&‘()*+=’” 等等字符

Unicode

Unicode 在一个字符集中包含了世界上所有文字和符号,统一编码,来终结不同编码产生乱码的问题

字符编码 UTF-8

Unicode 统一了所有字符的编码,是一个 Character Set,也就是字符集,字符集只是给所有的字符一个唯一编号,但是却没有规定如何存储

  • 一个字符使用四个字节存储,也就是 32 位,这样就能涵盖现有 Unicode 包含的所有字符,这种编码方式叫做 UTF-32(UTF 是 UCS Transformation Format 的缩写)

  • 在存储和网络传输中,通常使用更为节省空间的变长编码方式 UTF-8,UTF-8 代表 8 位一组表示 Unicode 字符的格式,使用 1 - 4 个字节来表示字符

    U+ 0000 ~ U+ 007F: 0XXXXXXX
    U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX
    U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX
    U+10000 ~ U+1FFFF: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
    

    可以看到,UTF-8 通过开头的标志位位数实现了变长。对于单字节字符,只占用一个字节,实现了向下兼容 ASCII,并且能和 UTF-32 一样,包含 Unicode 中的所有字符,又能有效减少存储传输过程中占用的空间

RTF格式下的unicode编码

明显特点:\u-65432?\u-65420

转换脚本

s=r"\u-65432?\u-65420?\u-65420?\u-65424?\u-65421?\u-65478?\u-65489?\u-65489?\u-65418?\u-65426?\u-65437?\u-65420?\u-65434?\u-65491"
l=list(s[3:-1].split(r"?\u-"))
flag=""
for i in l:flag+=chr(65536-int(i))
print(flag)

autokey

自动密钥密码(Autokey Cipher)也是多表替换密码,与维吉尼亚密码密码类似,但使用不同的方法生成密钥。通常来说它要比维吉尼亚密码更安全。自动密钥密码主要有两种,关键词自动密钥密码和原文自动密钥密码
解密网站:https://www.wishingstarmoye.com/ctf/autokey
http://www.practicalcryptography.com/ciphers/autokey-cipher/

# python2 解码
from pycipher import Autokeyprint Autokey('CULTURE').encipher('helloworld')
print Autokey('CULTURE').decipher('jyweinsypo')

工具下载:https://github.com/hitcxy/break_autokey
工具使用

需要安装pycipher库 pip2 install pycipher
修改break_autokey.py中的'ctext' 变量
python2 break_autokey.py

其他稀奇古怪编码

https://www.dcode.fr/
可以用这个网站

特殊编程语言

JS变种

已下这些都是js,打开console运行一下就能得到flag

brainfuck

http://www.hiencode.com/brain.html

jsfuck

用六个不同的符号
- !+
构造出JS的所有类型
http://www.hiencode.com/jsfuck.html

aaencode

**也称颜文字 **゚ω゚ノ= /`m´)ノ ~┻━┻ //´∇`/ [’_’]; o=(゚ー゚)
将JS代码转换成常用的网络表情
http://utf-8.jp/public/aaencode.html

jjencode

demo地址
http://utf-8.jp/public/jjencode.html

xxencode

jother

jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。其中8个少量字符包括: ! + ( ) [ ] { } 。只用这些字符就能完成对任意字符串的编码。不同于jsfuck,它多了{}这两个大括号
解密工具 由于jother执行之后所得到的结果分为字符串和函数两种,所以解密的方法也不相同。
字符串:直接在Console界面中输入并回车即可
函数: 对于函数类型的jother加密结果,我们只需要将最后的()改成.toString()即可

ctf中js的总结

npiet

有关颜色的编程语言

更多查看https://www.jianshu.com/p/ed929cf72312

ALPHUCK

字和符号,统一编码,来终结不同编码产生乱码的问题

MISC之常用编码总结相关推荐

  1. ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别

    ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别 最近老为编码问题而烦燥,下定决心一定要将其弄明白!本文主要总 结网上一些朋友提供的 asc ...

  2. NSSCTF刷题wp——常用编码

    NSSCTF Crypto 探索 常用编码 前两个题ID303,287在入门时做过了,详见另一篇wp链接 [AFCTF 2018]BASE ID:463 打开文件直接麻了,如果人工解码,估计黄花菜都要 ...

  3. CN_@物理层@信噪比@分贝单位@奈奎斯特定理@香农公式@常用编码方式(曼彻斯特编码/差分曼彻斯特编码)波形图

    文章目录 CN_@信噪比@分贝单位@奈奎斯特定理@香农公式@常用编码方式(曼彻斯特编码/差分曼彻斯特编码)波形图 通信基础概念 数据 (data) 信号 (signal) 基带信号 模拟信号 (ana ...

  4. 如何解决eps常用编码工具条缺失

    在我们准备用eps软件进行地物绘制时,发现安装好的eps软件的常用编码工具条缺失,这给绘图造成了较大的不便,因此我们想找出这个工具条,但当我们右键自定义定制时,在工具栏标签下同样找不到这个工具条,最后 ...

  5. VOS中开启媒体转发功能后,计算几种常用编码所需占用的带宽量

    VOS中开启媒体转发功能后,计算几种常用编码所需占用的带宽量 计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP ...

  6. 计算机字符编码——ASCII码和常用编码

    计算机字符编码--ASCII码和常用编码 ASCII码 基本介绍 上个世纪60年代, 美国制定了一套字符编码, 对英语字符与二进制位之间的关系, 做了统一规定,这被称为ASCII码. ASCII码一共 ...

  7. 带符号二进制数的表示方法与常用编码

    带符号二进制数的表示方法与常用编码 1.原码 字长最高位为符号位,正号用0表示,负号用1表示. 当字长为n位时,X=xn-1 xn-2 - x1 x0 整数 0 <= X < 2n-1   ...

  8. 【HTML基础笔记】之【常用编码】

    HTML 常用编码 4.1 HTML 实体编码 HTML实体编码,也即HTML中的转义字符. 在 HTML 中,某些字符是预留的,例如在 HTML 中不能使用小于号<和大于号>,这是因为浏 ...

  9. 说说4种常用编码的区别?

    问:说说ASCII,Unicode,UTF-8,GBK的区别? 答:Python2内容默认ascii进行编码,而Python3对内容进行编码的默认为utf-8.这个编码问题,也不是Python的问题, ...

  10. 【Python面试】 说说4种常用编码的区别?

    前两题: [Python面试]谈谈对 Python 和其他语言的区别? [Python面试]说说 Python 解释器种类以及特点? 废话不多说,开始今天的题目: 问:说说ASCII,Unicode, ...

最新文章

  1. android修改系统设置权限_安卓保护隐私利器!完美解决软件「不给权限就不运行」的小工具...
  2. Pattern-No.03 设计模式之策略模式
  3. PowerBI随笔(3)-增加自定义列
  4. mac恢复iphone_免费下载:旧Mac和iPhone壁纸的令人震惊的完整档案
  5. 如何更好的组织你的Laravel模型 1
  6. with 语句的妙用
  7. BigData | 一文带你搞清楚“数据倾斜”
  8. NBGI 传说系列历史
  9. Windows常用快捷键【快查字典版】
  10. linux下高性能服务器pdf,Linux高性能服务器编程(pdf+epub+mobi+txt+azw3)
  11. pycharm新建项目时选择virtualenv与existing interpreter
  12. IIS6/IIS7以上、Nginx、Apache拦截屏蔽垃圾蜘蛛UA爬行降低负载方法IIS7.5如何限制某UserAgent 禁止访问
  13. 如何零成本实现微信公众号自助查券返利机器人(六)
  14. TiDB HTAP 深度解读
  15. F014-正本清源话通缩 #F1175
  16. 2015去哪儿、大众点评、搜狗、小米校园招聘笔试题
  17. C++最精准的RGB-HSB(HSV)-HSL的色值转换
  18. 7 款炫酷的 VSCode 主题扩展
  19. csharp(CS1519)
  20. 网吧带宽控制技术发展之三步曲

热门文章

  1. 参加IBM武汉分公司10周年庆
  2. NAudio:MP3转WAV和Wav转Mp3
  3. 服务器CPU经常跑高是什么原因
  4. 央行开通个人信用报告在线查询服务
  5. Java个人职业规划目标改进_java个人职业发展方向规划范文
  6. Aras Innovator: 把itemtype直接部署在TOC的根目录
  7. ESP32文件系统esp_littlefs实例
  8. 古典乐器网页设计成品 大学生音乐网站制作模板 大学生静态音乐HTML网页源码 dreamweaver网页作业 简单网页课程成品
  9. MongoTemplate根据时间查询的大坑
  10. 《C++高级进阶》读书笔记 第一章 C++基础知识