首页 > 其他分享 >playfair密码

playfair密码

时间:2023-04-19 23:25:08浏览次数:30  
标签:playfair p2 p1 加密 字母 明文 密码 c2

playfair密码

简介

普莱费尔密码(英文:Playfair cipher 或 Playfair square)是一种使用一个关键词方格来加密字符对的加密法,1854年由一位名叫查尔斯·惠斯通(Charles Wheatstone)国人发明。
在1854到1855年的克里米亚战争和1899年的布尔战争中有广泛应用。但在1915年的一战中被破译了。

特征

  • 密文的字母数为偶数
  • 任意俩个同组字母不相同,否则为乱码和虚码
  • 有效防止频率分析法

算法

5*5的正方形密码表,排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。 如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。

加密

1. 编制密码表

  1. 5*5字母矩阵
  2. 由密钥来构造
  3. 从左到右、从上到下(或从上到下、从左到右)依次填入密钥的字母(不重复,重复的字母不填),然后以字母顺序表填入其他字母
  4. 字母I与J算作一个字母

2. 加密方式

  1. 分组
    将明文两两分组
  • 若明文个数为偶数,直接分组
  • 若明文个数为奇数
    缺补:在最后一个明文字母的后面补上其下一位字母(或者就插入一个字母X(或者Q)。)
  • 若明文分组后同一组字母相同
    同插:在相同的字母中间插入其下一个字母(或者就插入一个字母X(或者Q)。)
    同插补缺操作不分先后,结果相同
  1. 移位和替换
    令每组明文的第一个字母为p1,第二个字母为p2,每组密文的第一个字母为c1,第二个字母为c2有
  • 若p1,p2位于同一行,c1,c2分别为紧靠p1,p2右端的字母(其中第一列为最后一列的右端)
  • 若p1,p2位于同一列,c1,c2分别为紧靠p1,p2下端的字母(其中第一行为最后一行的上端)
  • 若p1,p2既不在同一行,也不在同一列,则c1,c2为p1,p2确定的矩形的其他两角字母(至于横向替换还是纵向替换要事先约好,或自行尝试,例如TL对应EG还是GE)

3. 解密

加密可逆

标签:playfair,p2,p1,加密,字母,明文,密码,c2
From: https://www.cnblogs.com/raccoon-JWX/p/17335053.html

相关文章

  • 简单的密码生成器
    importrandomchars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+-="length=int(input("请输入密码长度:"))password=""foriinrange(length):password+=random.choice(chars)print("生成的密......
  • 华为防火墙 修改密码 过期时间的命令 manager-user password valid-days 0
    ......
  • 直播平台源代码,input密码框显示与隐藏
    直播平台源代码,input密码框显示与隐藏一、html部分   <divstyle="margin-top:200px;background:#42b983;width:200px;height:100px">   <input:type="passwordType"v-model="password"placeholder="请输入账号"/>   <img......
  • git clone 指定用户名密码
    这种方法是因为本地git已经登录了一个git账号,但是没有权限,所以会用账号拉取。命令:gitclonehttp://邮箱(或用户名):密码@仓库格式:gitclonehttp://username:password@remote示例:gitclonehttp://15000000000:[email protected]/abc/projectName.git//示例中是假地址有另......
  • XAPMM上更改了root密码,怎么更新phpMyAdmin的配置文件
    要更新phpMyAdmin的配置文件以反映在XAPMM上更改的root密码,请按照以下步骤操作:1.打开phpMyAdmin的配置文件:在XAPMM中,phpMyAdmin的配置文件通常位于D:\xampp\phpMyAdmin2.在配置文件中,找到以下行:$cfg['Servers'][$i]['user']='root';$cfg['Servers'][$i]['password']......
  • app直播源码,Node.js实现密码散列加密
    app直播源码,Node.js实现密码散列加密1.安装所需的包: npmibcryptjs--save​2.修改MongoDB中的模型: ///models/AdminUser.js constmongoose=require('mongoose')//定义模型的字段constschema=newmongoose.Schema({  username:{//用户名    ty......
  • 密码引擎-4-国䀄算法交叉测试
    实验一密码引擎-4-国䀄算法交叉测试02人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名1在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图2在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)在安装了正确版本的openss......
  • 实验一 密码引擎-4-国䀄算法交叉测试
    实验一密码引擎-4-国䀄算法交叉测试1在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图2在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)3.在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用OpenSSLSM2算法计算Hash值的......
  • 实验一 密码引擎-4-国䀄算法交叉测试
    实验一密码引擎-4-国䀄算法交叉测试目录1在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图2在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)2.1创建EC参数和原始私钥文件2.2将原始的私钥文件,转换为pkcs8格式:2.3利用原始的私钥,生......
  • 如何利用sqlserver重置Administrator用户密码
    原文是sqlserver2005的,测试windows2016+sqlserver2017时此功能已经不可用,不过还是记录下重置方法。原理是通过sqlserver的OLE选项创建一个用户并将其添加至Administrator组,随后便可用该用户登录服务器修改administrator用户密码。OLE相当于给你一个cmd环境,让你可以输入cmd命令......