凯撒加密解密算法C语言(凯撒密码解密c语言)

2023-03-01 8:43:39 密码用途 思思

用C语言实现凯撒密码加密解密,急!

凯撒密码就是简单的加上一个数,'a'+3='d';'z'+3='c' 假设原文全是小写字母,那么 char plain[N]={...}; //明文 char cipher[N]={};//密文 int key=3; int i=0,temp; for(i=0;iN;i++) {if(plain[i]!=' ') {temp=plain[i]+key-'a'; temp=temp%26; cipher[i]=temp+'a'; } else cipher[i]=plain[i]; } 这样就完成了加密,密文数组里面就是对原文加密后的密文,key是密钥。

凯撒密码的算法c语言的怎么实现啊?

凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。

#include stdio.h

main()

{

char M[100];

char C[100];

int K=3,i;

printf("请输入明文M(注意不要输入空白串)\n");

gets(M);

for(i=0;M[i]!='\0';i++)

C[i]=(M[i]-'a'+K)%26+'a';

C[i]='\0';

printf("结果是:\n%s\n",C);

}

凯撒加密解密算法C语言(凯撒密码解密c语言) 第1张

用C语言编程恺撒密码加密解密程序

#include stdio.h

#define isletter( c )    ( ((c)='a'(c)='z') || ((c)='A'(c)='Z') )

void Enc( const char *str, char *out, int key )

{

    int i = 0; 

    while( str[i] )

    {

        if ( isletter( str[i] ) )

        {

            out[i] = str[i] + key;

            if ( ! isletter( out[i])  )

                out[i] -= 26;

        }

        else

            out[i] = str[i];

        i++;

    }

    out[i] = 0;

}

void Denc( const char *str, char *out, int key )

{

    int i=0;

    while( str[i] )

    {

        if ( isletter( str[i] ) )

        {

            out[i] = str[i] - key;

            if ( ! isletter( out[i] ) )

                out[i] += 26;

        }

        else

            out[i] = str[i];

        i++;

    }

    out[i] = 0;

}

int main()

{

    char  out[100], out2[100];

    Enc( "THE QUICK BROWn fox jumps over THE LAZY DOG", out, 3 );

    printf( "%s\n", out );

    Denc( out, out2, 3 );

    printf( "%s\n", out2 );

}

C语言凯撒加密是一种移位替代加密算法,即将字母表A-Z向左移位,然后用移位后的字母表替原来的明文得到密文

#include iostream

#include string

using namespace std;

int main()

{

    string code;//储存初始字符串

    string d_code;//加密后的字符串

    int i;

    int n;         //移位的个数

    cout"Enter the string "endl;

    cincode;

    cout"how many step do you want to move ?"endl;

    cinn;

    for(i=0;icode.size();++i)

    {

        if(int(code[i])97)

        {

            if(int(code[i])+n122)

              d_code[i]=int(code[i])+n-26;

            else

                d_code[i]=int(code[i])+n;

        }

        else if(int(code[i])+n90)

            d_code[i]=char(int(code[i])+n-26);

        else

            d_code[i]=char(int(code[i]+n));

    }

    for(i=0;icode.size();++i)

    {

        coutd_code[i];

    }

    coutendl;

    cout"Code = "codeendl;

    return 0;

}