S-DEV/암호학
Vigenere 코드
철민1234
2023. 7. 16. 13:20
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;
}