金鑰加密法(指標應用)

2021-10-04 21:53:03 字數 938 閱讀 8518

有一種方式是使用金鑰進行加密的方法,就是對明文的每個字元使用金鑰上對應的密碼進行加密,最終得到密文

例如明文是abcde,金鑰是234,那麼加密方法就是a對應金鑰的2,也就是a偏移2位轉化為c;明文b對應金鑰的3,就是b偏移3位轉化為e,同理c偏移4位轉化為g。這時候金鑰已經使用完,那麼又重頭開始使用。因此明文的d對應金鑰的2,轉化為f,明文的e對應金鑰的3轉化為h。所以明文abcde,金鑰234,經過加密後得到密文是cegfh。

如果字母偏移的位數超過26個字母範圍,則迴圈偏移,例如字母z偏移2位,就是轉化為b,同理字母x偏移5位就是轉化為c

要求:使用三個指標p、q、s分別指向明文、金鑰和密文,然後使用指標p和q來訪問每個位置的字元,進行加密得到密文儲存在指標s指向的位置。

除了變數定義和輸入資料,其他過程都不能使用陣列下標法,必須使用三個指標來訪問明文、金鑰和密文。

//明文、金鑰、密文

char *p,*q,*s;

int lenp=getstrlen(p);

int lenq=getstrlen(q);

//122:z / 97:a / 90:z / 65:a / 48:0

for(int i=0;i122)

//取餘得到超出的部分再加上第乙個字母

*(s+i)=97+(*p+*q-48)%123;

//沒有超出的直接相加即可

else if((*p+*q-48)>96)

*(s+i)=*p+(*q-48);

//處理大寫字母同上

else if((*p+*q-48)>90)

*(s+i)=65+(*p+*q-48)%91;

else

*(s+i)=*p+(*q-48);

//金鑰也要迴圈偏移

q=b+(i+1)%lenq;

}*(s+lenp)='\0';

金鑰加密法(指標應用)

題目描述 有一種方式是使用金鑰進行加密的方法,就是對明文的每個字元使用金鑰上對應的密碼進行加密,最終得到密文 例如明文是abcde,金鑰是234,那麼加密方法就是a對應金鑰的2,也就是a偏移2位轉化為c 明文b對應金鑰的3,就是b偏移3位轉化為e,同理c偏移4位轉化為g。這時候金鑰已經使用完,那麼又...

金鑰加密法(指標應用)

題目描述 有一種方式是使用金鑰進行加密的方法,就是對明文的每個字元使用金鑰上對應的密碼進行加密,最終得到密文 例如明文是abcde,金鑰是234,那麼加密方法就是a對應金鑰的2,也就是a偏移2位轉化為c 明文b對應金鑰的3,就是b偏移3位轉化為e,同理c偏移4位轉化為g。這時候金鑰已經使用完,那麼又...

問題 C 金鑰加密法(指標應用)

時間限制 1 sec 記憶體限制 128 mb 提交 339 解決 252 提交 狀態 討論版 有一種方式是使用金鑰進行加密的方法,就是對明文的每個字元使用金鑰上對應的密碼進行加密,最終得到密文 例如明文是abcde,金鑰是234,那麼加密方法就是a對應金鑰的2,也就是a偏移2位轉化為c 明文b對應...