일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 졸업 작품
- 파이썬
- 안드로이드 앱 개발
- 졸업 작품 소재
- c#
- 실습으로 다지는 c#
- C++
- 산책하기 좋은 곳
- Windows Forms
- 프로젝트
- 소켓 통신
- 강의
- 캡슐화
- 표준 입출력
- 클래스 다이어그램
- 추천
- 동영상
- 원격 제어 프로그램
- 무료 동영상 강의
- 소스 코드
- 표준 라이브러리 함수
- 언제나 휴일
- 네트워크 프로그래밍
- 동영상 강의
- 언제나휴일
- 알고리즘
- 실습
- 충남 천안
- c언어
- 유튜브 동영상 강의
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
xor mask를 이용한 암호화, and mask를 이용한 이진수 출력 본문
안녕하세요. 언제나 휴일에 언휴예요.
이번 강의는 비트 연산을 이용한 mask입니다.
^ mask를 이용하여 암호화하는 것과 & mask를 이용하여 이진수를 출력하는 실습이예요.
1.^mask를 이용한 암호화
2.&mask를 이용한 이진수 출력
1. ^mask를 이용한 암호화
비트 연산 이용하면 간단한 대칭형 암호화를 할 수 있어요.
대칭형 암호화는 암호화할 때와 복호화할 때 같은 키를 이용하는 암호화를 말합니다.
다음의 코드는 ^연산을 이용하여 평문을 암호화하고 복호화하는 예제입니다.
#include
int main()
{
int pd = 0x12345678;
int key = 0x2345873a;
int sec = pd ^ key;
int data = sec ^ key;
printf("평문:%#X\n", pd);
printf("키:%#X\n", key);
printf("암호문:%#X\n", sec);
printf("복호문:%#X\n", data);
return 0;
}
실행 결과는 다음과 같습니다.
이처럼 비트 연산 ^연산을 이용하여 대칭형 암호화를 할 수 있어요.
평문:0x12345678
키:0x2345873A
암호문:0x3171D142
복호문:0x12345678
2. & mask를 이용한 이진수 출력
비트 연산 &mask는 원하는 부분의 값을 추출할 때 사용할 수 있어요.
이러한 특징을 이용하여 맨 앞의 비트부터 1인지 0인지 확인하여 출력하면 이진수를 출력할 수 있어요.
다음 코드는 & mask를 이용하여 정수를 2진수로 출력하는 예제 코드입니다.
#include
int main()
{
int num;
printf("정수:");
scanf_s("%d", &num);
printf("%#X\n", num);
unsigned int cnum = 0x80000000;//1000 0000 0000 0000 0000 0000 0000 0000
int check = 0;
int cnt = 0;
while (cnum)
{
if (cnum & num)
{
printf("1");
check = 1;
}
else
{
if (check == 1)
{
printf("0");
}
}
cnt++;
cnum = cnum / 2;
if ((cnt % 4 == 0) && (check == 1))
{
printf(" ");
}
}
return 0;
}
다음은 실행 결과예요.
정수:349
0x15D
1 0101 1101
언제나휴일 추천 여행 및 산책
'C & C++ > 언제나 C언어' 카테고리의 다른 글
조건문 문제 솔루션 (0) | 2025.01.03 |
---|---|
조건문에서 if는 참일 때 수행 하고 else는 거짓일 때 수행 (0) | 2025.01.03 |
대입 연산의 왼쪽(좌항)에 오는 표현을 l-value라고 불러요. (0) | 2025.01.03 |
비트 자리 이동 연산, 쉬프트 연산 (0) | 2025.01.03 |
비트 연산 & | ^ ~ (1) | 2025.01.03 |
비교 연산, 논리 연산의 도움을 받으세요. (1) | 2025.01.03 |
논리 형식과 논리 연산 (0) | 2025.01.03 |
이럴 때 나머지 연산을 사용하자. 0123401234012… (0) | 2025.01.03 |