728x90
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
void vigenere_encryption(char* text, char* key) {
int text_len = strlen(text);
int key_len = strlen(key);
for (int i = 0; i < text_len; i++) {
if (text[i] >= 'A' && text[i] <= 'Z') {
text[i] = ((text[i] - 'A' + key[i % key_len] - 'A') % 26) + 'A';
}
//
else if (text[i] >= 'a' && text[i] <= 'z') {
text[i] = ((text[i] - 'a' + key[i % key_len] - 'a') % 26) + 'a';
}
}
}
int main() {
char text[100] = "This Vigenere Cipher";
char key[100] = "KEY";
vigenere_encryption(text, key);
printf("Encrypted Text: %s\n", text);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
void vigenere_decryption(char* text, char* key) {
int text_len = strlen(text);
int key_len = strlen(key);
for (int i = 0; i < text_len; i++) {
if (text[i] >= 'A' && text[i] <= 'Z') {
text[i] = ((text[i] - 'A' - (key[i % key_len] - 'A') + 26) % 26) + 'A';
}
else if (text[i] >= 'a' && text[i] <= 'z') {
text[i] = ((text[i] - 'a' - (key[i % key_len] - 'a') + 26) % 26) + 'a';
}
}
}
int main() {
char text[100] = "This Vigenere Cipher";
char key[100] = "KEY";
vigenere_decryption(text, key);
printf("Decrypted Text: %s\n", text);
return 0;
}
'S-DEV > 암호학' 카테고리의 다른 글
Caesar Ciper 암호화 코드 (0) | 2023.07.16 |
---|---|
암호학 개론 (0) | 2023.07.08 |