博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rail_deviceid_C和C ++中的Rail Fence密码程序[加密和解密]
阅读量:2514 次
发布时间:2019-05-11

本文共 3191 字,大约阅读时间需要 10 分钟。

rail_deviceid

Here you will get rail fence cipher program in C and C++ for encryption and decryption.

在这里,您将获得用于加密和解密的C和C ++的Rail fence密码程序。

It is a kind of transposition cipher which is also known as zigzag cipher. Below is an example.

这是一种换位密码,也称为之字形密码。 下面是一个例子。

Rail Fence Cipher Example

Here Key = 3. For encryption we write the message diagonally in zigzag form in a matrix having total rows = key and total columns = message length. Then read the matrix row wise horizontally to get encrypted message.

这里的Key =3。为进行加密,我们将消息对角地以Z字形写在矩阵中,该矩阵的总行数=密钥,总列数=消息长度。 然后水平读取矩阵行以获取加密的消息。

C语言的围栏密码程序 (Rail Fence Cipher Program in C)

#include
#include
 void encryptMsg(char msg[], int key){    int msgLen = strlen(msg), i, j, k = -1, row = 0, col = 0;    char railMatrix[key][msgLen];     for(i = 0; i < key; ++i)        for(j = 0; j < msgLen; ++j)            railMatrix[i][j] = '\n';     for(i = 0; i < msgLen; ++i){        railMatrix[row][col++] = msg[i];         if(row == 0 || row == key-1)            k= k * (-1);         row = row + k;    }     printf("\nEncrypted Message: ");     for(i = 0; i < key; ++i)        for(j = 0; j < msgLen; ++j)            if(railMatrix[i][j] != '\n')                printf("%c", railMatrix[i][j]);} void decryptMsg(char enMsg[], int key){    int msgLen = strlen(enMsg), i, j, k = -1, row = 0, col = 0, m = 0;    char railMatrix[key][msgLen];     for(i = 0; i < key; ++i)        for(j = 0; j < msgLen; ++j)            railMatrix[i][j] = '\n';     for(i = 0; i < msgLen; ++i){        railMatrix[row][col++] = '*';         if(row == 0 || row == key-1)            k= k * (-1);         row = row + k;    }     for(i = 0; i < key; ++i)        for(j = 0; j < msgLen; ++j)            if(railMatrix[i][j] == '*')                railMatrix[i][j] = enMsg[m++];     row = col = 0;    k = -1;     printf("\nDecrypted Message: ");     for(i = 0; i < msgLen; ++i){        printf("%c", railMatrix[row][col++]);         if(row == 0 || row == key-1)            k= k * (-1);         row = row + k;    }} int main(){    char msg[] = "Hello World";    char enMsg[] = "Horel ollWd";    int key = 3;     printf("Original Message: %s", msg);     encryptMsg(msg, key);    decryptMsg(enMsg, key);     return 0;}

Output

输出量

Original Message: Hello World Encrypted Message: Horel ollWd Decrypted Message: Hello World

原始消息:Hello World 加密消息:Horel ollWd 解密消息:Hello World

C ++中的Rail Fence密码程序 (Rail Fence Cipher Program in C++)

#include
#include
 using namespace std; void encryptMsg(char msg[], int key){    int msgLen = strlen(msg), i, j, k = -1, row = 0, col = 0;    char railMatrix[key][msgLen];     for(i = 0; i < key; ++i)        for(j = 0; j < msgLen; ++j)            railMatrix[i][j] = '\n';     for(i = 0; i < msgLen; ++i){        railMatrix[row][col++] = msg[i];         if(row == 0 || row == key-1)            k= k * (-1);         row = row + k;    }     cout<<"\nEncrypted Message: ";     for(i = 0; i < key; ++i)        for(j = 0; j < msgLen; ++j)            if(railMatrix[i][j] != '\n')                cout<

Comment below if you have queries related to above rail fence cipher program in C and C++.

如果您对上面的C和C ++围栏密码程序有疑问,请在下面评论。

翻译自:

rail_deviceid

转载地址:http://rmggb.baihongyu.com/

你可能感兴趣的文章
do/while(0)的妙用(转)
查看>>
UDP编程
查看>>
ecos中断机制分析(1)
查看>>
Plus One
查看>>
11.4 iftop:动态显示网络接口流量信息
查看>>
jQuery API中文文档
查看>>
【架构】MVC模式
查看>>
事件(三)
查看>>
迟到 的2018年终总结
查看>>
学习委托
查看>>
Spring之旅
查看>>
Tree
查看>>
Java学习之i/o系统
查看>>
laravel 视图组件
查看>>
[转发]Oauth 1.0 1.0a 和 2.0 的之间的区别有哪些?
查看>>
animation
查看>>
mysqldump的几个主要选项探究
查看>>
程序员修炼之路
查看>>
动态规划的基本模型
查看>>
php生成xml文件方法
查看>>