MISC:常见编码

一、字符编码

1.ASCII码

使用指定7位或8位二进制数组合表示128-256种可能。

常⻅考点:解题过程中给出十进制或十六进制的连续数值。

进制转换工具: ASCII text,Hex,Binary,Decimal,Base64 converter (rapidtables.com)

2.Base64编码

ASCII编码以8个比特为一组,而base64以6个比特为一组,通过索引进行加密,其中末尾可能带有=号,=号是来垫字的,一个等号相当于00 ,表示补了00。以下是base64编码表。

 

 3.URL编码

        URL编码(URL Encoding):也称作百分号编码(Percent Encoding),是统一资源定位符URL的编码机制。

        编码的原理可以表述为:将需要转码的字符,每个字节按16进制表示,并添加%组成的一个编码。特点:字符串中出现了%。例如,汉字你好转换成16进制:E4 BD A0 E5 A5 BD添加%形成URL编码:%E4%BD%A0%E5%A5%BD。

4.Unicode编码

        Unicode是一种字符编码标准,它为世界上几乎所有的字符都分配了一个唯一的数字编码,以便在计算机系统中进行处理和表示。其目标是提供一种统一的方式来表示和交换文字数据,无论是哪种语言、哪种书写系统或者是哪种计算机平台。为了在计算机中存储和传输Unicode字符,需要使用不同的编码方案来表示码点。

        常⻅的编码方案包括 UTF-8、UTF-16和UTF-32。

        UTF-16: 前缀:\u  特点:4个字符成对出现。

        UTF-32: 前缀:\U  特点:8个字符成对出现。

        Unicode: 前缀:&#  特点:5个字符成对出现。

        Hex: 前缀:&#x  特点:4个字符成对出现。

其中以&#为前缀的编码,可以通过保存为html文件进行解码。

使用工具:CTF在线工具-ASCII编码转换|Unicode编码转换|Native编码转换|UTF-16|UTF-32 (hiencode.com)

5.JavaScript编码

        有些时候开发者为了保护劳动成果可以通过对JavaScript的变量名称和过程名称进行编码,从而起到保护JS代码的作用,通常使用eval函数进行加密处理,该函数可以计算字符串,并执行其中的JS代码。

例如:

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0',62,1,'hhhhhh'.split('|'),0,{}))

也可以找到固定的位置 倒数第二行的‘hhhhhh'为解码后的数据。

工具:js在线加密解密(eval方法)工具 - 密码工具箱 - 脚本之家在线工具 (jb51.net)

 6.JsFuck编码

        JsFuck是一种基于JavaScript的编码技术,它可以将任意JavaScript代码转换成一系列只包含六个字符的表达式,这六个字符分别是[]()!+。

        JsFuck的设计目的是演示JavaScript语言的强大表达能力,同时也可以用作一种编码方式来绕过一些简单的代码过滤器或检测机制。JsFuck可以通过加密/解密网站来进行破解,同时也可以将密文放在浏览器的Console中进行解密。

        特点:由[]()!+字符组成。

工具:JSFuck - Write any JavaScript with 6 Characters: []()!+ ,也可用浏览器的Console来处理。

7.Jother编码

        与JSFuck差不多,区别是只用!+()[]{}这些字符就能完成对任意字符串的编码,比JSFuck多两个字符{}。

解密方式:

        浏览器F12,点开控制台,把码粘贴进去 回车运行。有可能会触发安全认证。

解码结果: 

8. aaencode编码

        aaencode是一种基于JavaScript的编码技术,它可以将任意JavaScript代码转换成一段看似无害的字符串形式,以达到隐藏和保护代码的目的。

        aaencode的特点是生成的编码字符串仍然是有效的JavaScript代码,可以在浏览器中解码执行,从而还原出原始的JavaScript代码。

        特点:出现大量的颜文字

 工具:aaencode - Encode any JavaScript program to Japanese style emoticons (^_^) (utf-8.jp)

二、现代密码

1.MD5

        MD5(Message Digest Algorithm 5)是一种广泛使用的哈希函数,用于将任意⻓度的数据转换为固定⻓度的哈希值,通常是128位(16字节)。

       MD5算法的工作原理如下:

                1.将输入数据分割成固定大小的块。

                2.对每个块进行一系列的位运算和逻辑函数操作。

                3.将最终的计算结果合并,生成最终的128位哈希值。

        然而,由于MD5的漏洞和弱点被逐渐发现,它已经不再被视为安全的哈希函数。主要的安全问题是它容易受到碰撞攻击,即找到两个不同的输入,但它们产生相同的MD5哈希值。这意味着攻击者可以通过修改输入数据,而不更改哈希值的情况下欺骗验证系统(即产生两个明文,来欺骗系统)。因此,在需要安全性的应用中,不建议使用MD5作为密码存储或数据完整性验证的方式。相反,推荐使用更强大和安全的哈希函数,如SHA-256(Secure Hash Algorithm 256位)。

        MD5值分为16位和32位:

                16位MD5值:将128位的MD5哈希值截取其中的一部分,通常是从第9位到第24位(包括第9位和第24位),共计16位。这个截断过程仅仅是为了缩短表示⻓度,并不影响哈希函数的计算过程。

                32位MD5值:将128位的MD5哈希值表示为32位的十六进制字符串,每个十六进制字符对应4位二进制位。这种表示方式是最常⻅的,常用于校验文件完整性、密码校验等应用。

        特点:32位和16位字符串

        例:e10adc3949ba59abbe56e057f20f883e

工具:MD5免费在线解密破解_MD5在线加密-SOMD5 

2.SHA

        SHA跟MD5的原理是一样的,是MD5的升级版,常⻅的⻓度有SHA-1、SHA-256、SHA-384和SHA-512等。

        例:ef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f

工具: MD5免费在线解密破解_MD5在线加密-SOMD5

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Datawhale组队学习:Sora原理与技术实战】使用KAN-TTS合成女生沪语音频

Sambert-Hifigan模型介绍 拼接法和参数法是两种Text-To-Speech(TTS)技术路线。近年来参数TTS系统获得了广泛的应用&#xff0c;故此处仅涉及参数法。 参数TTS系统可分为两大模块&#xff1a;前端和后端。 前端包含文本正则、分词、多音字预测、文本转音素和韵律预测等模块&am…

Vue组件中引入jQuery

两种在vue中引入jQuery的方式 1、普通html中使用jQuery 将jQuer的文件导入到项目中&#xff0c;然后直接使用<script src"jQuery.js"></script>即可。 <script src"jQuery.js"></script> 2、vue组件中使用jQuery 安装依赖 c…

unity报错出现Asset database transaction committed twice!

错误描述&#xff1a; 运行时报错 Assertion failed on expression: ‘m_ErrorCode MDB_MAP_RESIZED || !HasAbortingErrors()’Asset database transaction committed twice!Assertion failed on expression: ‘errors MDB_SUCCESS || errors MDB_NOTFOUND’ 解决办法&…

数据库字段类似 longblob,Navicat里看不到数据,看到的是BLOB。如何看到?

SELECT cast(库对应的字段 as char) FROM sys_notice; 例如&#xff0c;我的直接这样写 SELECT cast(notice_content as char) FROM sys_notice; 最后就能看到信息了

免费开源的 Vue 拖拽组件 VueDraggablePlus (兼容移动端)

VueDraggablePlus 支持 Vue2 / Vue3&#xff0c;是被尤雨溪推荐了的拖拽组件。我自己试用过了&#xff0c;还挺好用的&#xff0c;兼容移动端。 官网&#xff1a;https://alfred-skyblue.github.io/vue-draggable-plus/ 官网文档里面很详细了&#xff0c;我就不再介绍安装和用…

国内超好用且免费的 AI 写作工具有哪些?

目前&#xff0c;市面上这类AI工具实在是太多了&#xff0c;比如依托于清华大学开发的智谱清言&#xff0c;或亦是百度的文心一言&#xff0c;还是阿里云的通义千问&#xff0c;这些AI工具在功能是类似的&#xff0c;但是依托于大模型的不同&#xff0c;可能回答的结果迥然不同…

用Python的turtle库绘制皮卡丘

turtle库的简介 turtle(海龟)库是turtle绘图体系的python实现&#xff0c;turtle库是一种标准库&#xff0c;是python自带的。 turtle(海龟)是一种真实的存在&#xff0c;有一个海龟在窗口的正中心&#xff0c;在画布上游走&#xff0c;走过的轨迹形成了绘制的图形&#xff0…

YOLOv9改进策略:卷积魔改 | AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv | 2023年11月最新发表

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a; YOLOv9如何魔改卷积进一步提升检测精度&#xff1f;AKConv 通过不规则卷积运算完成高效特征提取的过程&#xff0c;为卷积采样形状带来更多探索选择。 AKConv可以作为即插即用的卷积运算来替代卷积运算来提高…

图解缓存淘汰算法 LRU、LFU | 最近最少使用、最不经常使用算法 | go语言实现

写在前面 无论是什么系统&#xff0c;在研发的过程中不可避免的会使用到缓存&#xff0c;而缓存一般来说我们不会永久存储&#xff0c;但是缓存的内容是有限的&#xff0c;那么我们如何在有限的内存空间中&#xff0c;尽可能的保留有效的缓存信息呢&#xff1f; 那么我们就可以…

nginx介绍及搭建

架构模型 Nginx是由一个master管理进程、多个worker进程组成的多进程模型。master负责管理worker进程&#xff0c;worker进程负责处理网络事件&#xff0c;整个框架被设计为一种依赖事件驱动、异步、非阻塞的模式。 优势&#xff1a; 1、充分利用多核&#xff0c;增强并发处理…

浏览器如何进行静态资源缓存?—— 强缓存 协商缓存

在平时使用浏览器排查问题的过程中&#xff0c;我们有时会看到浏览器网络请求中出现304状态码&#xff0c;那么是什么情况下出现304呢&#xff1f;下面是关于这一现象的解释&#xff1a; 浏览器如何进行静态资源缓存&#xff1f;—— 强缓存 & 协商缓存 状态码 304浏览器如…

Godot 学习笔记(2):信号深入讲解

文章目录 前言相关链接环境信号简单项目搭建默认的信号先在label里面预制接收函数添加信号 自定义无参数信号为了做区分&#xff0c;我们在label新增一个函数 自定义带参数信号Button代码label代码连接信号 自定义复杂参数信号自定义GodotObject类ButtonLabel连接信号 父传子Ca…

什么是神经网络?

一、什么是神经网络&#xff1f; 神经网络又称人工神经网络&#xff0c;是一种基于人脑功能模型的计算架构&#xff0c;因此称之为“神经”。神经网络由一组称为“节点”的处理单元组成。这些节点相互传递数据&#xff0c;就像大脑中的神经元相互传递电脉冲一样。 神经网络在…

深度学习pytorch——高阶OP(where gather)(持续更新)

where 1、我们为什么需要where&#xff1f; 我们经常需要一个数据来自好几个的取值&#xff0c;而这些取值通常是不规律的&#xff0c;这就会导致使用传统的拆分和合并会非常的麻烦。我们也可以使用for循环嵌套来取值&#xff0c;也是可以的&#xff0c;但是使用for循环就意味…

【数据可视化】使用Python + Gephi,构建中医方剂关系网络图!

代码和示例数据下载 前言 在这篇文章中&#xff0c;我们将会可视化 《七版方剂学》 的药材的关系&#xff0c;我们将使用Python制作节点和边的数据&#xff0c;然后在Gephi中绘制出方剂的网络图。 Gephi是一个专门用于构建网络图的工具&#xff0c;只要你能提供节点和边的数…

攻防实战 | 记一次nacos到接管阿里云百万数据泄露

在某次攻防当中&#xff0c;通过打点发现了一台nacos&#xff0c;经过测试之后发现可以通过弱口令进入到后台&#xff0c;可以查看其中的配置信息 通过翻看配置文件&#xff0c;发现腾讯云的AK,SK泄露&#xff0c;以及数据库的账号密码。操作不就来了么&#xff0c;直接上云&am…

jmeter打开文件报异常无法打开

1、问题现象&#xff1a; 报错部分内容&#xff1a; java.desktop does not export sun.awt.shell to unnamed module 0x78047b92 [in thread "AWT-EventQueue-0"] 报错部分内容&#xff1a; kg.apc.jmeter.reporters.LoadosophiaUploaderGui java.lang.reflect.Invo…

多种智能搜索算法可视化还原 3D 魔方

2024/03/19&#xff1a;程序更新说明&#xff08;文末程序下载链接已更新&#xff09; 版本&#xff1a;v1.0 → v1.2 ① 修复&#xff1a;将 CLOSED 表内容从优先级队列中分离开来&#xff0c;原优先级队列作 OPEN 表&#xff0c;并用链表树隐式地代替 CLOSED 表&#xff0c;以…

macOS系统中通过brew安装MongoDB

Macos 修改目录权限&#xff1a; sudo chmod -R 777 你的文件夹 本文使用homebrew进行安装简单&#xff0c;因为从官网下载安装包并手动安装需要移动安装包到合适的目录下并配置环境变量等一大堆操作后才能使用数据库&#xff08;若没有安装过brew请自行百度进行安装brew&am…

改进YOLOv8注意力系列六:结合SEAttention轻量通道注意力、ShuffleAttention重排特征注意力模块、SimAM无参数化注意力

改进YOLOv8注意力系列五:结合ParNetAttention注意力、高效的金字塔切分注意力模块PSA、跨领域基于多层感知器(MLP)S2Attention注意力 代码SEAttention轻量通道注意力ShuffleAttention重排特征注意力模块SimAM无参数化注意力加入方法各种yaml加入结构本文提供了改进 YOLOv8注…