Playfair密码

Playfair密码

Playfair cipher普莱费尔密码)一种古典对称式密码,是首个双字母替换的加密法。尽管以现在的眼光来看这种加密是非常不安全的,但是它加密的过程还是蛮有意思的。
这种加密方式所需要的就只有一张5×5的表格,比如说像这样:

1 2 3 4 5
E A C G U
F M O Z Y
K D P W S
L Q R V N
B H T X I

由于英文字母共有26个,我们一般会将I和J视为同一个字母,或者也可以移除Q。

加密流程

假设我们现在有一个flag为PP{we_are_not_playing_fair}, 想要将其当成

P P W E A R E N O T P L A Y I N G F A I R

进行加密 。

  1. 我们首先需要信息分成2个字母为一组,也就是

    PP WE AR EN OT PL AY IN GF AI R

    当出现一组内2个字母相同的情况时,我们需要在其中间插入一个X。于是会变成

    PX PW EA RE NO TP LA YI NG FA IR

    (当最后剩下一个字母单独一组的时候,需要在结尾加上X。不过显然我们这里并不需要)

  2. 然后我们会对每组字母进行加密,一共会分3种情况:

    1. 若两个字母在同一行,会将其替换成它们右边一格位置的2个字母。比如说会将PW加密成WS。
    2. 若两个字母在同一列,会将其替换成它们下边一格位置的2个字母。比如说会将TP加密成CR。
    3. 若两个字母不在同一行或者同一列,那么一定会存在一个矩形使得当前两个字母是这个矩形的2个角,这时将它们替换为这个矩形的另外2个角。比如说会将PX加密成WT。请添加图片描述

最后将所有内容按照这个方法进行加密就会得到

WTWSACLCRYCRQESUVUMETN

解密流程

解密的话则只需要逆着这个流程走一遍就好了:先用表格进行解密,然后将结果里用来补位的X给移除。


__EOF__

本文作者笔墨绘星河
本文链接https://www.cnblogs.com/bimohuixinghe/p/18594088.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   笔墨绘星河_Archer  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示