http://www.sourcecode.in.th/wbread.php?no=3531
จงเขียนโปรแกรมในการเข้ารหัส (Encrypt) และถอดรหัส (Decrypt) ชนิด Caesar Cipher
(ให้นักศึกษาค้นหาข้อมูล การเข้ารหัส และถอดรหัส ชนิด Caesar Cipher บนระบบ Internet)
โดยโปรแกรมส่วน main() จะให้
(1) ผู้ใช้เลือกระหว่าง การเข้ารหัส หรือการถอดรหัส
(2) รับ input เป็นข้อความที่มีความยาวไม่เกิน 49 ตัวอักษร (ข้อความจะถูกเปลี่ยนเป็นตัวพิมพ์เล็กทั้งหมดภายใน main())
และค่าของ key หลังจากนั้น จึงส่ง ข้อความและ key ไปยังฟังก์ชั่น encrypt() หรือ decrypt() ตามที่ผู้ใช้ระบุ
โดยให้ทำการออกแบบฟังค์ชั่นทั้ง 2 เอง หลังจากนั้นให้กลับมา print ข้อความที่ทำการเข้ารหัส หรือ ถอดรหัส ที่ฟังก์ชั่น main() เท่านั้น
หน้าจอ
1.Encrypt
2.Decrypt
Choose :1
Enter Message : Mahidol
Enter Key :3
Encrypt Message is pdklgro
1.Encrypt
2.Decrypt
Choose :2
Enter Message : l oryh brx
Enter Key :2
Decrypt Message is I love you
/*
@Author: Mr.Suppakit Thongdee
@Website: www.sourcecode.in.th
*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void encrypt(int key, char* message){
char cTemp;
int iTemp;
for(int i=0; i<strlen(message);i++){
iTemp = (int)message[i];
//a-z
if(iTemp>=96 && iTemp <=121){
iTemp = iTemp+key;
if(iTemp>121){
iTemp = iTemp-26;
}
cTemp = (char)iTemp;
message[i] = cTemp;
}
}
}
void decrypt(int key, char* message){
char cTemp;
int iTemp;
for(int i=0; i<strlen(message);i++){
iTemp = (int)message[i];
//a-z
if(iTemp>=96 && iTemp <=121){
iTemp = iTemp-key;
if(iTemp<96){
iTemp = iTemp+26;
}
cTemp = (char)iTemp;
message[i] = cTemp;
}
}
}
void main(){
char message[49];
int menu;
int key;
clrscr();
printf("1.Encrypt\n2.Decrypt\nChoose : ");
scanf("%d",&menu);
printf("Enter Key : ");
scanf("%d",&key);
//clear buffer
gets(message);
//Max 49 char
do{
printf("Enter Message: ");
//get message
gets(message);
if(strlen(message)>49){
printf("Error: Message is longer than 49 charater\n");
}
}while(strlen(message)>49);
strlwr(message); //Lower case
if(menu == 1){
encrypt(key, message);
printf("Encrypt Message is %s", message);
}else if(menu == 2){
decrypt(key, message);
printf("Decrypt Message is %s", message);
}else{
printf("Error: Choose incorrect menu.\n");
}
getch();
}