암호학/C언어(11)
-
c언어 문자열 변수, 문자열 포인터 변수 차이
1. 일반 문자열 변수 2. 문자열 포인터 변수 결론 : 일반 문자열 변수는 strcpy를 이용하면 복사가 잘 되지만, 직접 지정하면 에러가 나는 반면, 포인터 문자열 변수는 strcpy를 쓰거나, 직접 문자열 값을 지정해도 잘 동작한다.
2021.12.23 -
c언어 spirntf 함수 printf sprintf 차이점
printf는 여러가지 서식들을 조합해서 출력을 해준다. 영어+숫자+헥사값 등등 포맷연산자에 포맷만 지정해주면 다양한 값을 한 번에 출력을 해준다. 근데 출력을 말고, 개발을 하다보면 이를 변수에다가 저장해서 활용하고 싶을 때가 있다. sprintf는 출력하는 결과 값을 변수에 저장하게 해주는 기능이 있다. string = printf의 줄임말이 sprintf라고 생각할 수 있다. printf가 출력하는 함수라면, sprintf는 출력값을 문자열에 저장하는 함수이다. 해당 함수로 인해 문자열 사이에 특정 값을 끼어넣는다든지, 문자열 + 숫자 조합을 쉽게 컨트롤 한다든지, 마스킹 처리와 같은 특정 포맷을 만든다든지 다양하게 활용할 수 있다.
2021.07.14 -
C언어 공용체
공용체 선언은 구조체와 별반 다를게 없습니다. 하지만 초기화는 다르죠. 공용체 선언을 보시면 단 하나만 초기화를 하고 있습니다. 메모리를 공용하기 있기 때문에 공용체의 제일 첫번째 멤버변수 "age"만 초기화가 가능합니다. 그래서 "age"에 20을 할당하는 모습입니다. 붉은 네모를 보시면 유니온을 사용한 모습을 보실 수 있습니다. 구조체와 별반 다를 건 없습니다. 다만 출력 값을 보시면 "age"를 사용하다가 "grade"를 사용하면 "age"의 값은 사라짐을 볼 수 있습니다. 그 이유는 위에 설명했듯이 메모리를 공유하기 때문에 하나를 사용하면 하나는 데이터가 사라짐을 보실 수 있습니다. 메모리 공유의 내용만 빼면 대부분 구조체와 동일합니다.
2021.06.07 -
c언어 / c++ for문(반복문) 차이점
c++ for(int i = 0 ; i < 10; i++) 가능 c언어 for(int i = 0 ; i < 10; i++) 불가능 for문안에 변수선언 불가능
2021.06.03 -
sha-1 알고리즘 코딩
#include #include // strlen 쓰려고 #include //memcpy 쓰려고 #define block_size 512 #define round 80 #define static_word 32 using namespace std; void text_move(char *, int); int count1; void char_to_int(char text); void boohowha(int a); int binary_text[block_size] = { 0, }; void length_boohowha(int a); int W[round][static_word] = { 0, }; void W_SET(); void length_boohowha(unsigned int, int[]); void f1(..
2021.05.14 -
sha-1
임의의 길이의 입력데이터를 160bit의 출력데이터로 바꾸는 것. NSA에서 창안하였음 SHA-1은 2^64보다 작은 입력 데이터를 160-BIT의 고정 크기로 출력한다. 40글자, 160-bit 출력이므로 글자당 4bit, 글자가 16진수(0~16) 이므로 4bit로 표현
2021.05.13