(8주 항목 4) 문자열 암호화

1935 단어
#include <stdio.h>
#include "sqString.h"

SqString A,B; //         

SqString EnCrypt(SqString p)
{
    int i=0,j;
    SqString q;
    while (i<p.length)
    {
        for (j=0; p.data[i]!=A.data[j]; j++); //       &&j<A.length
        if (j>=p.length)            // A     p.data[i]  
            q.data[i]=p.data[i];
        else                        // A    p.data[i]  
            q.data[i]=B.data[j];
        i++;
    }
    q.length=p.length;
    return q;
}

SqString UnEncrypt(SqString q)
{
    int i=0,j;
    SqString p;
    while (i<q.length)
    {
        for (j=0; q.data[i]!=B.data[j]; j++);//       &&j<B.length
        if (j>=q.length)            // B     q.data[i]  
            p.data[i]=q.data[i];
        else                    // B    q.data[i]  
            p.data[i]=A.data[j];
        i++;
    }
    p.length=q.length;
    return p;
}

int main()
{
    SqString p,q;
    StrAssign(A,"abcdefghijklmnopqrstuvwxyz");  //  A 
    StrAssign(B,"ngzqtcobmuhelkpdawxfyivrsj");  //  B 
    char str[MaxSize];
    printf("
"); printf(" :"); gets(str); // StrAssign(p,str); // p printf(" :
"); printf(" :"); DispStr(p); q=EnCrypt(p); //p q printf(" :"); DispStr(q); p=UnEncrypt(q); //q p printf(" :"); DispStr(p); printf("
"); return 0; }


텍스트 문자열은 미리 작성된 문자 맵으로 암호화할 수 있습니다.예를 들어, 설정 문자 매핑 테이블은 다음과 같습니다.
 abcdefghijklmnopqrstuvwxyz ngzqtcobmuhelkpdawxfyivrsj
문자열'lao he jiao shu ju jie gou'가'enp bt umnp xby uy umt opy'로 암호화됩니다.암호화, 복호화 알고리즘을 실현하고 입력한 텍스트를 암호화한 후에 출력한 다음에 복호화하고 출력하는 프로그램을 설계한다. 

좋은 웹페이지 즐겨찾기