| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1288 人关注过本帖
标题:求解用C语言编写Playfair加密算法问题
只看楼主 加入收藏
Jye1991
该用户已被删除
收藏
已结贴  问题点数:5 回复次数:4 
求解用C语言编写Playfair加密算法问题
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: C语言 balloon 字母 加密 
2011-11-28 13:13
Jye1991
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-11-28 13:19
Jye1991
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-11-28 16:53
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:5 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
char p[6][6]={{'C','I','P','H','E','C'},
        {'R','A','B','D','F','R'},
        {'G','K','L','M','N','G'},
        {'O','Q','S','T','U','O'},
        {'V','W','X','Y','Z','V'},
        {'C','I','P','H','E','C'}};
int main()
{
    char str[100];
    int i,j,n;
    int len='a'-'A';
    printf("Please input a word!\n");
    scanf("%s",str);
    for(i=0;i<strlen(str);i++)///////////
    {
        if(str[i]>'Z')
            str[i]=str[i]-len;
        if(str[i]=='J')///////////
            str[i]='I';
    }
    for(i=0;i<strlen(str);i=i+2)///////
    {
        if(str[i]==str[i+1]) /////////////
        {
            for(j=strlen(str)+1;j>i+1;j--)
                str[j+1]=str[j];
            str[i+1]='X';
        }
    }
    n=strlen(str);
    /*
    for(i=0;i<n;)///////
    {
        printf("%c ",str[i]);
        i++;
        if(i%5==0)
            printf("\n");
    }*/
    if(n%2==1)
    {
        n++;
        str[n+1]='X';
    }
    char temp1,temp2;
    int k=0,s=0,l=0,r=0,t;//////////
    for(t=0;t<n;t=t+2)////////
    {
        temp1=str[t];
        temp2=str[t+1];
        for(i=0;i<5;i++)
        {
            for(j=0;j<5;j++)
            {
                if(p[i][j]==temp1)
                {
                    k=i;
                    s=j;
                }
                if(p[i][j]==temp2)
                {
                    l=i;
                    r=j;
                }
            }
        }
        if(k==l) ////////////
            printf("%c,%c  ",p[k][(s+1)%5],p[l][(r+1)%5]);//////////
        else if(s==r) //////////////
            printf("%c,%c  ",p[(k+1)%5][s],p[(l+1)%5][r]);//////////
        else
            printf("%c,%c  ",p[k][r],p[l][s]);
    }
    return 0;
}
2011-11-28 22:11
Jye1991
该用户已被删除
收藏
得分:0 
回复 4楼 laznrbfe
提示: 作者被禁止或删除 内容自动屏蔽
2011-12-01 11:39
快速回复:求解用C语言编写Playfair加密算法问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024849 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved