二、网络安全常见编码及算法-(2)

news2025/6/1 7:06:59
该文章主要介绍古典密码和隐写常用的密码和编码,日常中很少见,主要用于ctf比赛和考试学习

一、古典密码

1、古典密码概念概述

古典密码是密码学发展早期所使用的一系列加密技术,这些密码主要依靠手工操作或简单的机械装置来实现信息的加密和解密。它们是人类在长期的信息安全实践中逐步发展起来的,旨在保护信息不被未经授权的人员获取或篡改。

2、古典密码的核心特点

  • 简单性:古典密码的加密和解密过程通常相对简单,易于手工实现。它们不依赖于复杂的数学算法或电子设备,而是基于一些基本的替换、置换或数学运算。
  • 易破解性:由于古典密码的加密方法相对简单,且密钥空间有限,因此它们在现代密码学面前显得较为脆弱。通过穷举法、频率分析等方法,攻击者往往能够破解古典密码。
  • 历史价值:尽管古典密码在现代密码学中已不再具有实用价值,但它们作为密码学发展的起点,具有重要的历史意义和研究价值。通过研究古典密码,我们可以了解密码学的基本原理和发展历程。

3、古典密码的主要类型

(1)替换密码

  • 定义:替换密码是一种将明文中的每个字符替换为另一个字符的加密方法。替换规则可以基于固定的映射表(如凯撒密码)或动态生成的密钥(如维吉尼亚密码)。
  • 示例:凯撒密码是一种简单的替换密码,它将明文中的每个字母按照字母表顺序向后(或向前)移动固定的位数。例如,将“A”替换为“D”,“B”替换为“E”,以此类推。

(2)置换密码

  • 定义:置换密码是一种通过重新排列明文中的字符顺序来实现加密的方法。置换规则可以基于固定的模式(如列置换)或动态生成的密钥。
  • 示例:列置换密码将明文按行写入一个矩阵中,然后按照列的顺序读出密文。解密时,将密文按列写入矩阵,再按行读出明文。

(3)其他古典密码

  • 栅栏密码:将明文分成若干组,每组包含相同数量的字符。然后,按照特定的顺序(如“之”字形)重新排列这些字符,形成密文。
  • 棋盘密码:使用一个棋盘(如波利比奥斯方阵)将明文中的字符映射为数字或字母组合,从而实现加密。

4、古典密码的应用与局限性

  • 应用:古典密码在古代和中世纪被广泛应用于军事、政治和外交等领域,用于保护敏感信息的安全。
  • 局限性:随着密码学的发展,古典密码的易破解性逐渐暴露出来。现代密码学已经发展出了更为复杂和安全的加密算法,使得古典密码在现代信息安全领域中已不再适用。

5、古典密码对现代密码学的影响

尽管古典密码在现代密码学中已不再具有实用价值,但它们作为密码学发展的起点,为现代密码学提供了重要的启示和借鉴。通过研究古典密码,我们可以了解密码学的基本原理和发展历程,从而更好地理解和应用现代密码学技术。同时,古典密码中的一些思想和方法(如替换、置换等)仍然在现代密码学中发挥着重要作用。

6、常见的古典密码

(1)凯撒密码(Caesar Cipher)

原理:凯撒密码是一种替换加密技术,将明文中的每个字母按照字母表顺序向后(或向前)移动固定位数(密钥)进行替换。例如,密钥为3时,A→D,B→E,…,Z→C。
加密示例

  • 明文:HELLO

  • 密钥:3

  • 密文:KHOOR

  • 字母表移动

    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  
    ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓  
    D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
    

解密:将密文字母向前移动相同位数即可还原明文。
特点:简单易实现,但安全性低,易通过暴力破解(仅26种可能)。

加解密网站:凯撒(Caesar)加密/解密 - Bugku CTF平台


(2)维吉尼亚密码(Vigenère Cipher)

原理:多表替换密码,使用一个关键词作为密钥,对明文的每个字母应用不同的凯撒密码。例如,关键词为LEMON时,第一个字母用L对应的凯撒表,第二个字母用E对应的表,依此类推。
加密示例

  • 明文:ATTACKATDAWN
  • 密钥:LEMON
  • 密文:LXFOPVEFRNHR
  • 过程
    • A(明文)+ L(密钥)= L(密文)
    • T + E = X
    • T + M = F

解密:根据密钥的每个字母确定对应的凯撒表,逆向替换即可还原明文。
特点:比凯撒密码更复杂,安全性更高,但历史上曾被卡西斯基试验和弗里德曼试验破解。

加解密网站:维吉尼亚加密/解密 - Bugku CTF平台


(3)栅栏密码基础型(Rail Fence Cipher)

原理:将明文按行排列成“栅栏”形状,然后按列读取形成密文。例如,两栏时,奇数位字母放第一行,偶数位放第二行。
加密示例

  • 明文:WEAREDISCOVEREDFLEEATONCE

  • 分组(两栏):

    W  A  E  I  C  V  R  D  L  E  T  N  E
    E  R  D  S  O  E  E  F  E  A  O  C
    
    
  • 密文:WAEICVRDLETNEERDSOEEFEAOC@

解密:根据密文长度和栏数,将字母按列填充回栅栏形状,再按行读取。
特点:简单易用,但安全性较低,易通过分析字母分布破解。

加解密网站:栅栏加密/解密 - Bugku CTF平台


(4)栅栏密码W型(Zigzag Cipher)

原理:栅栏密码的变种,字母按W型(或Z字形)路径排列在多行上,然后按行读取形成密文。例如,三栏时,字母按“下-上-下”路径排列。
加密示例

  • 明文:HELLOWORLD

  • 路径(三栏):

    H . . . O . . . R . . .  
    . E . L . W . L . D .  
    . . L . . . O . . . .
    
  • 密文:HORELWLDLO

解密:根据栏数和密文长度,将字母按W型路径放回原位,再按行读取。
特点:比基础型更复杂,安全性略高,但易被频率分析破解。

加解密网站:栅栏加密/解密 - Bugku CTF平台


(5)猪圈密码(Pigpen Cipher)

原理:基于几何图形的替换密码,每个字母对应一个由点和线组成的特定符号。例如,A对应左上角的“L”形,B对应右上角的“L”形,依此类推。
加密示例

  • 明文:HELLO

  • 符号对应:

    在这里插入图片描述

    密文:对应的符号图形。
    在这里插入图片描述

解密:根据符号图形逆向查找字母。
特点:简单易记,曾被共济会等组织使用,但安全性低,易通过符号表破解。

加解密网址:猪圈密码转换器_猪圈密码翻译器_猪圈密码在线加密解密


(6)ROT13

原理:一种特殊的凯撒密码,密钥固定为13,即字母表中的每个字母向后移动13位(A→N,B→O,…,Z→M)。由于字母表有26个字母,ROT13是自反的(加密和解密使用相同规则)。
加密示例

  • 明文:HELLO WORLD

  • 密文:URYYB JBEYQ

  • 字母表移动

    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  
    ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓  
    N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
    

解密:再次应用ROT13即可还原明文。
特点:常用于简单隐藏文本(如论坛中的剧透),无安全性可言,仅用于非敏感场景。

加解密网址:https://lzltool.cn/Toolkit/Rot13String


二、隐写术(信息隐藏)

1、文本隐藏加密

特征:加密过的密文会比原文的字节数多,当你按删除键的时候会发现某一处要按好多下才能把前面的字删掉

原理:它的原理是在密文中加入了不可见字符组成的编码,例如上述看似九个字符的一句话,通过字数查询可知它实际上有87个字符,多出的字符是由零宽空格实现的编码,因为零宽空格不占据空间,所以看不出它的存在。

使用:在进行文本隐藏加密时,将需要隐藏的文字写在括号中,就像这样“你好(有才华),我好喜欢你(画的画)!”,然后加密即可隐藏括号内的文字。同时可以设定一个密码,这样只有知道密码的人才能解密隐藏的文字。密码可以是数字、字母和下划线,最多九位。

2、零宽隐写

特征:解密后明文与密文会分开显示,密文一般隐藏在第一个字后面。

与上面文本隐藏加密的原理一样,但过程不一样

3、莫尔斯电码
  • 通过点、划和间隔表示字母,可用于隐写或信号传递。

  • 特征:密文由不规律的./-组成

    • 摩尔斯电码(Morse alphabet)(又译为摩斯电码)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母、数字和标点符号等。
    • 由美国人摩尔斯(Samuel Finley Breese Morse)于1837年发明,为摩尔斯电报机的发明(1835年)提供了条件。
    • 摩尔密码加密的字符只有字符,数字,标点,不区分大小写,支持中文汉字
    • 中文摩斯加密解密:本工具摩尔密码加密是互联网上唯一一个可以对中文进行摩斯编码的工具。
      在这里插入图片描述

加密hello
在这里插入图片描述

在线网址:https://mosi.solm.cn/

三、现代编码与混淆技术

1、百家姓暗号

原理:通过百家姓中的73个不同的中文,用来代替数字0 - 9、字母a - z以及一些常用符号的一种加密方式。例如,赵– 0,钱– 1,孙– 2,李– 3,周– 4,吴– 5,郑– 6,王– 7,冯– 8,陈– 9,褚– 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,福– 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,薛– . ,顾– # ,尹– % ,江– & ,钟– * 。
示例

  • 加密前HELLO
  • 加密过程:根据对应关系,H对应秦(h),E对应韩(e),L对应杨(f),L对应杨(f),O对应孔(o),所以加密后为“秦韩杨杨孔”。
  • 加密后秦韩杨杨孔

加密网址:https://www.ahz0.com/bjx.html

2、与佛论禅

原理:将文本通过特定规则转换为类似佛经文字的密文,多借助在线工具实现。
示例

  • 加密前hello world
  • 在这里插入图片描述

在线工具:https://www.keyfc.net/bbs/tools/tudoucode.aspx

3、卡尔达诺栅格码

原理:使用一块按一定规则随机挖出许多小窗格的纸板或金属板(栅格),覆盖到一条精心编排的消息上,可以显示隐藏着另一条消息。

把明文伪装成垃圾邮件,看着这么多内容,其实我只是加密了YOU KILL AT ONCE

示例

  • 加密前:原始消息为YOU KILL AT ONCE,准备一个有特定窗格的栅格板。
  • 加密过程:将栅格板覆盖在精心编排的包含原始消息和其他无关字符的消息纸上,透过窗格显示隐藏消息。假设通过特定排列,栅格板覆盖后能显示隐藏消息。
  • 加密后:表面看到的是被栅格板部分覆盖后的包含原始消息和其他无关字符的混合内容,但透过栅格窗格能看到隐藏的YOU KILL AT ONCE

在线工具:https://www.spammimic.com/

4、文本加密为汉字

原理:将文本通过特定算法转换为汉字编码,具体算法可能多样,这里假设一种简单规则,如将ASCII码转换为对应的汉字(仅为示例,实际可能有更复杂规则)。

特征:将明文加密成各种繁体字后面带俩等号

示例

  • 加密前ABC(A的ASCII码为65,B为66,C为67)
  • 加密过程:假设一种简单映射,65对应“一”,66对应“二”,67对应“三”(仅为示例,实际规则会更复杂)。
  • 加密后一二三

5、 颜文字JS加密

原理:利用颜文字符号组合成可执行的JavaScript代码,通过复杂的字符替换实现代码的混淆。

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

示例

  • 加密前:一段简单的JavaScript代码,如alert("Hello, JavaScript")
  • 加密过程:将代码中的字符用颜文字等符号替换,例如将alert替换为颜文字组合(这里仅为概念示例,实际替换规则复杂),可能变成类似😀😃😄("😁");(实际加密后的代码形式会复杂得多且能正常运行)。
  • 在这里插入图片描述
  • 加密后😀😃😄("😁");(运行效果与原代码相同,弹出提示框)在这里插入图片描述

在线网址:https://utf-8.jp/public/aaencode.html

6、 jother编码

原理:在JavaScript语言中,利用少量特定字符(如“+”、“!”、“(”、“)”、“[”、“]”、“{”、“}”)构造精简的匿名函数对与字符串的编码方式。基于JavaScript的特性,如布尔值转换、类型转换等。

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

示例

  • 加密前alert("Hello");
  • 加密过程:利用jother编码规则,将代码转换为仅用特定字符组成的代码,例如转换后可能为[]["filter"]["constructor"]("return alert")()(["Hello"]);(此为简化示例,实际编码会更复杂)。
  • 加密后[]["filter"]["constructor"]("return alert")()(["Hello"]);(运行效果与原代码相同)

7、JSFuck编码

原理:只使用六个字符[ ] ( ) ! +来编写任何有效的JavaScript代码。基于布尔值(如![]等价于false,!![]等价于true)、类型转换(如[]等价于0,[]+[]等价于"")、构建字符串(利用String.fromCharCode()函数等)、访问对象属性(使用方括号[]来访问对象属性)等核心概念。

特征:与jother很像,只是少了{ }

示例

  • 加密前alert("Hello");
  • 加密过程:通过一系列复杂的操作,利用六个字符构建出能实现相同功能的代码。例如先构建数字和字符串,再获取相关函数,最后组合成可执行的代码(手动编写过程繁琐,这里不详细展开)。
  • 加密后:一段仅由[ ] ( ) ! +组成的复杂代码(如[][(![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=(!%5B%5D%2B%5B%5D&pos_id=img-cBKwiLJO-1748246651005)[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]])()(此为能实现alert("Hello")功能的JSFuck编码示例,实际可手动优化简化)

在这里插入图片描述

在线网址:https://jsfuck.com/

8、Quoted-Printable

原理:任何一个8位的字节值可编码为3个字符:一个等号“=”后跟随两个十六进制数字(0 - 9或A - F)表示该字节的数值。通常用于电子邮件中,使邮件能支持非ASCII字符、二进制格式附件等多种格式的邮件消息。

特征:这种编码常用与邮件处理,只能对汉字进行编码,特征是=加两个大写字母或数字组合

示例

  • 加密前你好(在UTF - 8编码中,“你”的十六进制为E4 BD A0,“好”的十六进制为E5 A5 BD
  • 加密过程:按照规则,“你”会被编码为=E4=BD=A0,“好”会被编码为=E5=A5=BD
  • 加密后=E4=BD=A0=E5=A5=BD

在线网址:http://www.mxcz.net/tools/QuotedPrintable.aspx

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

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

相关文章

Windows系统安装MySQL Connector 使用C++ VS2022连接MySQL

1. 官网及版本 1.1. 网址 官方文档 - 安装编译构建: https://dev.mysql.com/doc/connector-cpp/9.3/en/ 官方文档 - 使用案例: https://dev.mysql.com/doc/dev/connector-cpp/latest/ 下载地址: https://dev.mysql.com/downloads/connector/…

D2000平台上Centos使用mmap函数遇到的陷阱

----------原创不易,欢迎点赞收藏。广交嵌入式开发的朋友,讨论技术和产品------------- 在飞腾D2000平台上,安装了麒麟linux系统,我写了个GPIO点灯的程序,在应用层利用mmap函数将内核空间映射到用户态,然后…

Elasticsearch索引机制与Lucene段合并策略深度解析

引言 在现代分布式搜索引擎Elasticsearch中,文档的索引、更新和删除操作不仅是用户交互的核心入口,更是底层存储架构设计的关键挑战。本文围绕以下核心链路展开: 文档生命周期管理:从客户端请求路由到分片定位,从内存…

整合Jdk17+Spring Boot3.2+Elasticsearch9.0+mybatis3.5.12的简单用法

Elasticsearch是一个基于Lucene的分布式搜索和分析引擎,广泛应用于全文搜索、日志分析等场景。结合Spring Boot可以快速构建强大的搜索应用。本文将介绍如何在Spring Boot项目中集成和使用Elasticsearch。 ES9.0.1目前支持的包只有 elasticsearch-rest-client/ …

Ubuntu从0到1搭建监控平台:本地部署到公网访问实战教程Cpolar穿透与Docker部署全过程

文章目录 前言1.关于Ward2.Docker部署3.简单使用ward4.安装cpolar内网穿透5. 配置ward公网地址6. 配置固定公网地址总结 前言 IT运维人员是否常为服务器管理系统的复杂操作所困扰?当海量性能指标图表与密集预警信号同时涌现时,这种信息过载往往让专业团…

vscode java debug terminal 中文乱码

现象 解决 快捷键 ctrl , 进入setting 配文件添加 "terminal.integrated.automationProfile.windows": {"path": "cmd","args": ["/k","chcp","65001"]}terminal 启动时,活动也改为 utf-…

3D PDF如何制作?SOLIDWORKS MBD模板定制技巧

SOLIDWORKS制作3D PDF模版 SOLIDWORKS MBD能够帮助工程师以清晰直观的方式描述产品尺寸信息。在3D PDF文件中,用户可以自由旋转和移动视图,方便查看模型的各个尺寸细节。 本文将带您一步步学习如何使用SOLIDWORKS MBD制作专业的3D PDF模板,…

Qt DateTimeEdit(时间⽇期的微调框)

使⽤ QDateEdit 作为⽇期的微调框. 使⽤ QTimeEdit 作为时间的微调框 使⽤ QDateTimeEdit 作为时间⽇期的微调框. 这⼏个控件⽤法⾮常相似, 我们以 QDateTimeEdit 为例进⾏介绍. QDateTimeEdit 核⼼属性 属性说明dateTime时间⽇期的值. 形如 2000/1/1 0:00:00date单纯⽇期…

C# 类和继承(屏蔽基类的成员)

屏蔽基类的成员 虽然派生类不能删除它继承的任何成员,但可以用与基类成员名称相同的成员来屏蔽(mask) 基类成员。这是继承的主要功能之一,非常实用。 例如,我们要继承包含某个特殊方法的基类。该方法虽然适合声明它的…

基于vue框架的动物园饲养管理系统a7s60(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:饲养员,健康登记,工作进度,动物信息,进食信息,动物健康,动物医治,饲料信息,工作留言 开题报告内容 基于Vue框架的动物园饲养管理系统开题报告 一、研究背景与意义 (一)研究背景 随着城市化进程加快和公众对生…

WPS自动换行

换行前 换行后 快捷键 第一步:启用「自动换行」功能 选中目标单元格/区域:点击需要设置的单元格(或拖动选中多个单元格)。开启自动换行(3种方式任选): 快捷按钮:在顶部菜单栏点击「…

maven中的grpc编译插件protobuf-maven-plugin详解

protobuf-maven-plugin 是 Maven 中用于编译 Protocol Buffers(protobuf)文件并生成对应语言代码(如 Java、C、Python 等)的插件。在 gRPC 项目中,它常被用来生成服务端和客户端所需的代码。以下是该插件的详细解析&am…

服务发现Nacos

目录 Nacos server 安装 注册服务到Nacos server 接口访问Nacos server中的已注册服务 Nacos控制台介绍 Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 在分布式服务应用中,各类服务需要统一的注册、统一的管理,这个组件工具…

社群分享:义乌|杭州电商|店群卖家,私域鱼塘运营的排单系统开源|私域鱼塘运营|返款软件开源

熟悉东哥的朋友都知道,我自己也运营一个电商社群,主要是针对玩私域|鱼塘的电商玩家。 在当前电商环境下,社群分享型电商、店群卖家及私域鱼塘运营者,面临着日益复杂的订单管理和客服调度问题。传统的人工处理不仅效率低…

C#回调函数深度解析

文章目录 前言什么是回调函数C#中实现回调的方式委托(Delegate)事件(Event)Action和FuncPredicateAsyncCallback匿名方法和Lambda表达式 回调函数实际应用场景异步编程事件处理策略模式LINQ查询 回调函数的优缺点优点缺点 最佳实践与注意事项总结相关资源 前言 在现代软件开发…

通义智文开源QwenLong-L1: 迈向长上下文大推理模型的强化学习

🎉 动态 2025年5月26日: 🔥 我们正式发布🤗QwenLong-L1-32B——首个采用强化学习训练、专攻长文本推理的LRM模型。在七项长文本文档问答基准测试中,QwenLong-L1-32B性能超越OpenAI-o3-mini和Qwen3-235B-A22B等旗舰LRM&#xff0c…

低代码——表单生成器以form-generator为例

主要执行流程说明: 初始化阶段 : 接收表单配置对象formConf深拷贝配置,初始化表单数据和验证规则处理每个表单组件的默认值和特殊配置(如文件上传) 渲染阶段 : 通过render函数创建el-form根组件递归渲染表…

linux centos 服务器性能排查 vmstat、top等常用指令

背景:项目上经常出现系统运行缓慢,由于数据库服务器是linux服务器,记录下linux服务器性能排查常用指令 vmstat vmstat介绍 vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这…

LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析

LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析 1、背景2、信令传输3、视频流传输3.1、UDP传输模式3.2、TCP被动传输模式3.3、TCP主动传输模式 4、WEB配置流传输模式4.1、编辑模式4.2、下拉切换模式 5、搭建GB28181视频直播平台 1、背景 在…

Tomcat 使用与配置全解

一、 Tomcat简介 Tomcat服务器是Apache的一个开源免费的Web容器。它实现了JavaEE平台下部分技术规范,属于轻量级应用服务器。 1. Tomcat版本 Tomcat版本 JDK版本 Servlet版本 JSP版本 10.0.X 8 and later 5.0 3.0 9.0.x 8 and later 4.0 2.3 8.0.x 7…