C语言置换密码

本文介绍了C语言如何实现置换密码加密解密的方法,通过将明文排成矩阵,按照密钥重新排列列顺序生成密文。举例说明了加密过程,并提供了解密的逻辑。同时,给出了C语言代码实现,欢迎对代码提出改进意见。
摘要由CSDN通过智能技术生成

C语言置换密码
置换密码:将明文按照密钥的长度为一行排成矩阵,不足用其他字符补齐,再按密钥的顺序重新排列每一列,按竖排读出得到密文
例子:
明文:Beijing2008OlympicGames
密钥:421365
用$补齐矩阵
明文的矩阵:
B e i j i n
g 2 0 0 8 O
l y m p i c
G a m e s $
对密钥的解释:密钥的第一位是3,就是把明文的第3列放到密文的第一列。
密文的矩阵:
i e j B n i
0 2 0 g O 8
m y p l c i
m a e G $ s
得到的密文:
i0mme2yaj0peBglGnOc$i8is

解密:
将密文如下排列:
i 0 m m
e 2 y a
j 0 p e
B g l G
n O c $
i 8 i s

按密钥的顺序依次读取每一列中的每一行
密钥是421365,则先读取第一列中的第4行的B。

C语言代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
	int len = 0, row = 0,i = 0,j=0,check=2;
	char plainText[2048] = { 32 }, temp[2048] = { 32 };
	char key[10] = { 0 }, tempkey[10] = { 0 };
	printf("输入原文:
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值