单表置换加密matlab,单表置换密码
在单表置换密码中,密钥是由字母与空格组成的 如shana
在没有密钥作用前,置换表如下
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
在密钥的作用下,置换表将发生变化,具体如下
将密钥填入置换表,如果遇到重复的字符则忽略,接着按原表顺序填充,忽略重复字符,如下表
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
S
H
A
N
B
C
D
E
F
G
I
J
K
L
M
O
P
Q
R
T
U
V
W
X
Y
Z
首先将SHAN填入表中,因为A已经在前面出现,所以忽略,接着将除去S H A N四个字符的字母表按顺序填充
具体C语言代码实现如下,这个代码个人感觉写的不够简洁,以后有机会再修改
思路就是读取密钥后填充进空的置换表,然后 再把原字符表填充到置换表中构成密码表
#include
#include
int main()
{
//置换表
char List[27] = { 0 };
//字母表
char Alpha[26] = { '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' };
//密钥
char Key[101] = { 0 };
//明文
char Message[101] = { 0 };
//密文
char CipherText[101] = { 0 };
int Num = 0;
//获取密钥
printf("请输入密钥(100字符以内): ");
gets(Key);
//构造置换表
for (int i = 0; Key[i]; ++i)
{
if (Key[i] == ' ')
continue;
for (int j = 0; j < 26; ++j)
{
if (Alpha[j] == Key[i])
{
Alpha[j] = 0;
List[Num++] = Key[i];
}
}
}
for (int i = 0; i < 26; ++i)
{
if (!Alpha[i])
continue;
List[Num++] = Alpha[i];
}
//获取明文
printf("请输入明文(100字符以内): ");
gets(Message);
//加密
for (int i = 0; Message[i]; ++i)
{
if (Message[i] == ' ')
CipherText[i] = ' ';
else
CipherText[i] = List[Message[i] - 'a'];
}
//打印密文
printf("加密后密文: %s\n", CipherText);
system("PAUSE");
return 0;
}
单表置换加密matlab,单表置换密码相关推荐
- 单自由度振动系统 matlab,单自由度系统的振动及matlab分析
<单自由度系统的振动及matlab分析>由会员分享,可在线阅读,更多相关<单自由度系统的振动及matlab分析(6页珍藏版)>请在金锄头文库上搜索. 1.单自由度系统的振动及 ...
- 直扩 单音干扰抑制 matlab,单频干扰在直扩系统中的误码性能分析
收稿日期 :2004 - 05 - 08 收修改稿日期 :2004 - 07 - 28 单频干扰在直扩系统中的误码性能分析 许 靖 谷春燕 易克初 (西安电子科技大学综合业务网国家重点实验室 ,西安 ...
- 单应性矩阵 matlab,单应性矩阵MATLAB程序
单应性(Homography)描述的是同一个平面上的点,在两幅视图上的像点之间存在一一对应的映射关系,本质上是将一个目标点在两幅图像中相互转移.对应关系如图所示. 本文计算单应性矩阵在两个图像平面中都 ...
- mysql5.7.16 表空间加密_技术分享 | InnoDB 表空间加密
本文目录: 一.表空间加密概述 应⽤场景 加密插件 加密限制 注意事项 二.加密表空间 安装加密插件 配置表空间加密 查看表空间被加密的表 三.更新 master encryption key 四.导 ...
- 怎么实现Web系统URL传输(表单提交)参数加密-zhuan
using System; using System.Security.Cryptography; using System.IO; using System.Text; namespace EIP. ...
- laravel基础课程---14、表单验证(lavarel如何进行表单验证)
laravel基础课程---14.表单验证(lavarel如何进行表单验证) 一.总结 一句话总结: lavarel的验证的功能比tp要[简单]且[强大]很多 直接控制器中:添加[规则数组]和[修改提 ...
- java怎么防止表单重复提交_如何防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- js入门·表单详解一(修改表单属性,修改表单元素值)
实在javascript入门·Document对象入门讲解(访问表单,创建新页,获取页标题) 一文中,我们已经把表单的一些基本访问等弄清楚了,下面我们深入的学下表单的属性以及对表单元素的简单操作! 演 ...
- ajax注册表单用户名实时验证,Ajax注册表单用户名实时验证..doc
Ajax注册表单用户名实时验证. Ajax注册表单用户名实时验证 1.1.1 摘要 很多时候在网站上注册时,我们会发现,注册表单通常需要检查用户名和电子邮件地址的可用性:从而确保用户之间不拥有相同的用 ...
- access表怎么生成表结构_数据结构——单链表讲解
单链表 单链表的创建分为头插入法和尾插入法两种,两者并无本质上的不同,都是利用指针指向下一个结点元素的方式进行逐个创建,只不过使用头插入法最终得到的结果是逆序的. 1.单链表概念&设计 单链表 ...
最新文章
- 国内优秀Android学习资源汇总全集
- STM32F4 HAL库开发 -- 独立看门狗(IWDG)
- 组合数(Lucas定理) + 快速幂 --- HDU 5226 Tom and matrix
- 《动手学深度学习》 第二天 (线性回归)
- cpu使用率_线程CPU使用率到底该如何计算?
- 文件操作--设置文件属性、获取文件属性
- Android开发指南(41) —— Searchable Configuration
- java数字后面加f_java 数字后面 f 和 l
- 祝学校计算机系的新年贺词,[学校班级新年祝福语]班级新年贺词
- Unity2 学习 制作和动态加载预制体
- vue启动项目报错 `webpack-dev-server --inline --progress --config build/webpack.dev.conf
- 【Unity3D插件】VOXL插件分享《多人沙盒游戏插件》
- Enterprise Architect(EA)画UML之用例图,敲详细讲解+实战举例
- 2022年10款好用免费数据恢复软件分享
- [光劍藏書館2020] 孔夫子旧书网
- CSS入门教程——HTML选择器
- php wps导入数据库,wps excel表格怎么导入数据库-如何把excel表格导入wps
- linux python2.7安装pymysql
- Mac环境下安装MongoDB数据库
- 拉勾 python_python 登录拉钩
热门文章
- 用VB评估数学表达式
- bin文件用cad打开_怎么快速打开CAD图纸?
- C语言-书籍资料汇总
- 再谈过时且脆弱的TCP长肥管道三宗罪!
- ctc系统通信前置服务器,CTC系统包括哪些接口服务器?
- php多张图片下载(zip压缩)
- java编程题代做,代做COMP 2406作业、代写Java语言作业、代做programming作业、代写Java程序实验作业...
- python脚本 游戏赚金币_Python实现王者荣耀刷金币脚本功能
- 【计算机网络】实验一 Protocol Layer
- 怎样找计算机物理地址,怎么查询电脑物理地址