시저암호화란??
암호학에서 다루는 간단한 치환암호의 일종이다. 암호화하고자 하는 내용을 알파벳별로 일정한거리만큼 밀어서 다른 알파벳으로 치환하는 방식이다. 예를 들어 3글자씩 밀어내는 카이사르 암호도 ‘COME TO ROME’를 암호화 하면 ‘FRPH WR URPH’가 된다. 해당 암호화를 통해 앱을 디컴파일 하여도 쉽게 인증서를 획득할 수 없이 개발이 되어 있다.
불펌이 많아 댓글에 메일주소 알려주시면 보내드리도록 하겠습니다.
암호화
#include <stdio.h> #include <stdlib.h> #include <string.h> #define LENGTH 200 int main() { FILE *fp1, *fp2 ; char line[LENGTH] ; char c ; fp1 = fopen("[암호화 할 파일명]", "r"); fp2 = fopen("[암호화 될 파일명]", "w"); int i; int key = 5 ;
while ( fgets(line, LENGTH -1 , fp1 ) ) { for(i=0; i<strlen(line); i++) { if(line[i]>='A' && line[i]<='Z') { line[i]-='A'; if(line[i]+key<0){ line[i]+=26; } line[i]=(line[i]+key)%26; line[i]+='A'; } if(line[i]>='a' && line[i]<='z') { line[i]-='a'; if(line[i]+key<0) { line[i]+=26; } line[i]=(line[i]+key)%26; line[i]+='a'; } } fputs ( line, fp2 ) ; }
printf("File copy completed!\n") ;
fclose ( fp1 ) ; fclose ( fp2 ) ;
return 0; } |
복호화
#include <stdio.h> #include <stdlib.h> #include <string.h> #define LENGTH 200 int main() { FILE *fp1, *fp2 ; char line[LENGTH] ; char c ; fp1 = fopen("[복호화 할 파일명]", "r"); fp2 = fopen("[복호화 될 파일명]", "w"); int i; int key = 5 ;
key=-key; while ( fgets(line, LENGTH -1 , fp1 ) ) { for(i=0; i<strlen(line); i++) { if(line[i]>='A' && line[i]<='Z') { line[i]-='A'; if(line[i]+key<0){ line[i]+=26; } line[i]=(line[i]+key)%26; line[i]+='A'; } if(line[i]>='a' && line[i]<='z') { line[i]-='a'; if(line[i]+key<0) { line[i]+=26; } line[i]=(line[i]+key)%26; line[i]+='a'; } } fputs ( line, fp2 ) ; }
printf("File copy completed!\n") ;
fclose ( fp1 ) ; fclose ( fp2 ) ;
return 0; } |
퍼갈때 댓글 및 출처 부탁드려요.
'IT > 개발' 카테고리의 다른 글
ELK 트러블슈팅 note (0) | 2020.01.14 |
---|---|
클라우드에 관하여 정리 (0) | 2016.01.20 |
[C]파일 암/복호화 (0) | 2015.11.23 |
[C]char 형 포인터 - 배열 변경 (0) | 2015.11.23 |
[C]문자열 원하는곳에서 2번 자르기 (0) | 2015.11.23 |
[C]1초마다 시간 다르게 셋팅 (0) | 2015.11.23 |
[android]루팅없이 화면 폰 동영상 찍는법(4.4이상) (0) | 2015.01.20 |
[mqtt]java client SSL 적용하기 (0) | 2015.01.15 |
정규식 (나름)정리 (0) | 2015.01.05 |