Playfair密码C语言源代码(共6页).doc
《Playfair密码C语言源代码(共6页).doc》由会员分享,可在线阅读,更多相关《Playfair密码C语言源代码(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上/PLAYFAIR.H头文件#ifndef _PLAY_FAIR_H_#define _PLAY_FAIR_H_void cst_playfair_table (char *in_key);void prnt_playfair_table ();int playfair_encrypt (char *plain_txt, char *cipher_txt);int playfair_decrypt (char *cipher_txt, char *plain_txt);#endif/PLAYFAIR.C源文件#include playfair.h#include #i
2、nclude #include char playfair_table55;void get_x_y (char c, int *x, int *y)int i, j;for (i = 0; i 5; +i)for (j = 0; j 5; +j)if (playfair_tableij = c)*x = i; *y = j;return;char get_char_x_y (int x, int y)if (x 0)x += 5;if (y 0)y += 5;return playfair_tablex % 5y % 5;void cst_playfair_table (char *in_k
3、ey)int i = 0, j, k;int char_count = 0, left_ch_index = 0;char ch, left_chs26 = 0, key26 = 0;int key_len;strcpy (key, in_key);key_len = strlen (key);while (1)if (keyi = )for (j = i; j key_len - 1; +j)keyj = keyj + 1;key_len-;if (i = key_len)break;i+;for (i = 0; i 1)for (k = j; k key_len -1; +k)keyk =
4、 keyk + 1;key_len-;elsej+;elsej+;if (j = key_len)break;if (char_count = 0)left_chsleft_ch_index+ = ch;for (i = 0; i left_ch_index; +i)keykey_len+ = left_chsi;for (i = 0; i 26; +i)if (keyi = z)for (j = i; j 25; +j)keyj = keyj + 1;for (i = 0; i 5; +i)for (j = 0; j 5; +j)playfair_tableij = key5 * i + j
5、;void prnt_playfair_table ()int i, j;printf (Playfair Table:n);for (i = 0; i 5; +i)printf (t);for (j = 0; j 5; +j)printf (%c , playfair_tableij);puts(n);int playfair_encrypt (char *plain_txt, char *cipher_txt)int length = strlen (plain_txt);int i = 0, j;int ax, ay, bx, by;char pch1, pch2, cch1, cch2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Playfair 密码 语言 源代码
限制150内