목차
- 이전 포스팅의 C 언어 Openssl 라이브러리를 사용하여 AES256 CBC 암호화 예제 학습 링크
- 이전 포스팅의 C 언어 Openssl의 RSA 키 쌍 생성 예제 학습 링크
- 이전 포스팅의 C 언어 AES 256 ECB 암호화 및 복호화 예제 학습 링크
- C 언어 fsetpos 함수를 사용하여 파일의 실시간 위치 변경 예제
- C 언어 fsetpos 함수로 위치 변경 후 fread로 텍스트 파일 읽기 예제
이전 포스팅의 C 언어 Openssl 라이브러리를 사용하여 AES256 CBC 암호화 예제 학습 링크
이전 포스팅에서는 c언어에서 openssl 라이브러리를 사용하여 c 프로그램에서 aes 256 cbc 암호화를 수행하는 방법에 대해 알아보았습니다. aes 256은 키 크기 32byte인 블록 암호화 알고리즘입니다. 블록 암호화 알고리즘은 평문을 일정한 크기 블록 단위로 잘라서 그 블록마다 마다 암호화 및 복호화를 수행하는 방식입니다. 스트림 암호화와 반대되는 개념입니다. 또한 aes 256은 256이 가리키는 의미는 key의 bit 수가 256 bit라는 의미입니다. 따라서 키 크기가 32byte가 됩니다. 만약 c언어에서 aes256 암호화 방법이 궁금하시다면 아래 링크를 참고하여 학습해주세요.
2023.07.31 - [C] - [C/C++] Openssl 활용 AES256 암호화 및 복호화 예제 - 3(CBC, CTR, 등)
이전 포스팅의 C 언어 Openssl의 RSA 키 쌍 생성 예제 학습 링크
다음으로 이전 포스팅에서는 c언어에서 openssl 라이브러리를 사용하여 rsa 키 쌍을 생성하여 로컬에 키파일로 저장하는 방법과 예제에 대해 알아보았습니다. rsa는 공개키 알고리즘으로 암호화시에 개인키, 공개키 2개의 키가 사용됩니다. aes 블록 암호화는 대칭키 알고리즘이며 암호화, 복호화시에 사용하는 키가 동일합니다. rsa는 개인키로 암호화하면 공개키로 풀어야하고 공개키로 암호화하면 개인키로 풀어야합니다. 이러한 특성을 이용하여 전자서명에서 많이 사용되고 있습니다. c언어에서 rsa 키 생성 방법이 궁금하시다면 아래 링크를 참고하여 학습해주세요.
2023.07.31 - [C] - [C/C++] Openssl 활용 RSA 공개키 및 개인키 생성 예제
이전 포스팅의 C 언어 AES 256 ECB 암호화 및 복호화 예제 학습 링크
마지막으로 이전 포스팅에서는 c언어에서 aes 256 ecb 체인 모드로 암호화 및 복호화하는 방법에 대해 알아보았습니다. ecb는 블록 암호화 알고리즘에서 가장 기본되는 체인 모드입니다. cbc, ctr 등의 암호화 알고리즘의 보안성을 높여주기 위한 다양한 체인이 존재하지만, ecb는 일반적인 체인입니다. 따라서 c언어 프로그램에서 Openssl 라이브러리를 링크하여 AES 256 ECB 암호화 및 복호화 프로그램을 설계중이시라면 아래의 포스팅을 참고하여 학습해주세요.
2023.07.28 - [C] - [C/C++] Openssl 활용 AES256 암호화 및 복호화 예제 - 2(ECB암호화 및 체인 종류)
C 언어 fsetpos 함수를 사용하여 파일의 실시간 위치 변경 예제
아래는 c언어에서 stdio.h 에 있는 fsetpos 함수를 사용하여 현재 열려있는 파일의 오프셋을 실시간으로 변경하는 예제입니다. fread로도 오프셋을 변경시킬 수 있지만 fsetpos는 읽지 않고도 강제적으로 실시간 오프셋을 변경합니다.
#include <stdio.h>
int main() {
FILE *filePointer;
char buffer[100];
// 파일 열기
filePointer = fopen("/tmp/example.txt", "r");
if (filePointer == NULL) {
perror("파일 열기 실패");
return 1;
}
// 파일의 오프셋 변경 (fsetpos 사용)
fpos_t position;
fgetpos(filePointer, &position);
fseek(filePointer, 10, SEEK_SET);
fsetpos(filePointer, &position);
fclose(filePointer);
return 0;
}
C 언어 fsetpos 함수로 위치 변경 후 fread로 텍스트 파일 읽기 예제
아래는 c언어에서 fsetpos 함수로 파일의 실시간 오프셋을 이동시킨 후 이동된 시점으로부터 fread 함수로 텍스트를 읽고 화면에 출력하는 예제입니다.
#include <stdio.h>
#define MAX_LENGTH 100
int main() {
FILE *filePointer;
char buffer[MAX_LENGTH];
// 파일 열기
filePointer = fopen("/tmp/example.txt", "r");
if (filePointer == NULL) {
perror("파일 열기 실패");
return 1;
}
// 파일의 오프셋 변경 (fsetpos 사용)
fpos_t position;
fgetpos(filePointer, &position);
fseek(filePointer, 10, SEEK_SET);
fsetpos(filePointer, &position);
// 변경된 위치부터 파일 읽기 (fread 사용)
while (fread(buffer, sizeof(char), MAX_LENGTH, filePointer) > 0) {
printf("%s", buffer);
}
fclose(filePointer);
return 0;
}