説明 暗号文は、平文と鍵の対応する文字を「追加」することによって、平文から生成されます。平文が鍵より短い場合、鍵の一部のみが使用されます。同様に、平文がキーよりも短い場合、キーは複数回使用されます。
たとえば、プレーンテキスト「HELLO」をキー「CAT」でエンコードするには、次のようにします。
平文:こんにちは
キー:CATCA
暗号文: KFFOP
そして、鍵「FIDO」でプレーンテキスト「DOG」をエンコードするには、次のようにします。
平文:DOG
キー: FID
暗号文:JXK
2 つの文字を一緒に追加するには、次の規則を使用します: A=1、B=2、…、Z=26。2 文字の合計が 26 より大きい場合は、合計から 26 を引きます。例: A + E = 1 + 5 = 6 = F、および D + X = 4 + 24 = 28 = 2 = B。
- 今私のコードの問題は、キー文字が少ない場合、プレーンテキストをさらにコーディングするためにキー文字を繰り返すことができないことです。キー文字を繰り返す方法は、さらにコーディングが可能ですか?
みんな助けて。
これが私のコードです:
#include<stdio.h>
#include<string.h>
int main()
{
char str[100],k[50],str1[100];
int i,n;
gets(str);// Input plain text.
gets(str1);//Input key.
for(i=0;str[i]!='\0';i++)
{
n=(str[i]-65+1)+(str1[i]-65+1);//Extracting the numerical position and adding them.
if(n>26) //if numerical value exceeds 26 then subtracting 26 from it and getting the numerical value.
{
n=n-26;
}
str[i]=n+64;//storing the ciphered character.
}
for(i=0;str[i]!='\0';i++)//printing the ciphered characters.
printf("%c",str[i]);
return 0;
}