본문 바로가기
반응형

IT Computer74

파이썬 람다 Lambda 함수와 (if~else,map,reduce, filter)응용 람다 함수 람다 함수는 일시적으로 사용하는 익명 함수입니다. 간결하면서 짧게 쓸 수 있기에 잘 사용한다면 좋은 코드를 쓸 수 있는 함수입니다. 단순한 일회용 함수이며 변수에 람다식을 대입하지 않는 이상 호출이 불가능하며 일시적으로 쓰입니다. 기본식 lambda (인자):(표현식) 인자는 변수로 사용되는 인수들의 이름입니다. 위와 같은 단순 람다식은 호출이 불가능합니다. ld_func=lambda x,y : x + y 다음과 같은 표현은 lambda 식을 나중에 호출하기 위해 사용합니다. 람다식을 변수에 직접 대입한 식입니다. x, y가 인자가 되며 x+y는 표현식이 됩니다. 람다는 혼자로도 자주 사용되지만 다른 함수와 혼합하여 사용할 때 빛을 발합니다. lambda 함수 응용 if~else 응용 lamb.. 2021. 8. 8.
파이썬 리스트와 리스트 활용하기 파이썬도 타 언어들과 같이 배열이 존재합니다. 단순 배열이기보단 상위 레벨 언어답게 다양한 기능을 제공합니다. 리스트 기본 리스트의 생성은 직접 리스트 값을 넣거나 꺽쇠로 리스트를 선언 혹은 리스트 생성자로 직접 리스트를 선언할 수 있습니다. li=[1,2,3,4,5] li2=[] li3=list() 리스트에 요소를 추가할 때는 append() 메서드를 사용합니다. li.append(1) 반대로 삭제는 remove()를 사용합니다. 인덱스 list1=[1,2,3,4,5] list1의 예로 인덱스는 0부터 시작합니다. 때문에 list1[0] : 1입니다. 해당 인덱스는 0~4 범위를 가지게 됩니다. 파이썬에서는 인덱스에서 음수도 다룰 수 있습니다. 끝 요소 list1[4] : 5부터 -1로 시작해 앞으로 .. 2021. 8. 5.
공개키 암호, 비대칭키 암호화 RSA 공개키 암호화 (비대칭키 암호화) 공개키 암호는 비대칭 암호화라고도 하며 대칭키 암호화를 할 때 키 전달 문제를 해결하기 위해 개발되기 시작하였다. 개인키로 암호화하면 공개키로 복호화하고 공개키로 암호화하면 또 그 반대가 되는 방식이다. 공개키 암호화 알고리즘으로 DH, RSA, ECDH등이 있다. 공개키 암호화의 원리로는 소인수 분해, 이산 로그 문제, 타원 곡선의 어려움을 이용하여 암호화를 수행한다. 암호화를 진행한 하나의 키를 알고 있어도 복호화에 필요한 키를 알아내는데 굉장히 많은 연산이 필요하다. 수준급 분산 클러스터 시스템을 쓴다 하더라도 하루 이상이 소모된다. 공개키 암호화를 이용하여 암호화 통신을 하기에는 계산이 너무 복잡하여 매우 비효율적이다. 때문에 대칭키 암호화와 동시에 사용하여 대칭.. 2021. 7. 27.
파이썬 AES 암호화 파일 예제 파이썬 AES 파일 암호화 AES 암호는 대칭키 암호화로 현재 대중적으로 사용되는 암호화 방식 중 하나이다. 여러 암호화 모드를 적용할 수 있다. Python에서는 AES를 사용하기 위해서 pycrypto 모듈을 설치해야 한다. 리눅스를 기준으로 'pip install pycryptodomex'를 명령하면 설치가 진행된다. 사용 전 SHA 해시를 사용해 초기화 벡터와 키를 sha로 해싱 후 키로 사용할 것이다. 해시는 파이썬 자체로 hashlib 있으나 pycrypto를 이용해 사용할 것이다. 해시 설명 hash는 일종의 대응 함수이다. 해시는 빠른 검색을 위해 사용되었고 이후 역상 저항성을 이용해 암호 및 보안에도 이용된다. 주로 MD, SHA 계열이 있고 SHA는 버전에 따라서 알고리즘이 다른 경우가.. 2021. 7. 23.
C/C++ 메모리 복사 memcpy 함수 memcpy란 특정 메모리를 다뤄 복사하는 함수이다. 헤더 파일을 보면 문자열 관련 함수로 보일 수 있으나 그것보다 더 범용성이 넓다. memory copy의 약자이며 지정한 메모리의 내용을 다른 곳으로 복사하기 위해 사용한다. 깊은 복사를 사용하여 복사를 진행한다. 기본 함수 및 인자 void* memcpy(void* dst, void* src, size_t num) string.h 헤더 파일을 포함해야 하며 memory.h에도 정의되어있다. c++에서는 헤더 파일을 포함하면 된다. dst : 복사받는 메모리를 가리키는 포인터 src : 복사하려는 원은 메로리를 가리키는 포인터 num : 복사할 바이트 수 성공 시 dst 포인터를 반환하며 실패 시 NULL을 반환한다. memcpy 함수 사용 memcp.. 2021. 7. 16.
C/C++ memset() 함수 memset함수? memset 함수는 메모리의 시작점부터 지정한 범위를 특정한 문자로 지정하는 함수이다. 함수 뜻 그대로 memory set이다. 기본 함수 및 인자 void* memset(void* str, int value, size_t size); str : 설정하려는 문자열의 시작 주소 value: 초기화하려는 값, unsigned char로 변환하기 때문에 문자 size : 변환할 만큼의 길이, 자료형의 배수로 입력하고 배수만큼 초기화된다. 헤더 파일은 에 선언되어 있으며 에도 정의되어있다. C++에서는 을 사용한다. memset함수 사용 memset함수는 할당된 특정 메모리 공간을 특정한 값으로 초기화하거나 어떠한 문자열을 특정 값으로 초기화하기 위해 사용된다. memset()은 성공 시 첫 .. 2021. 7. 11.
반응형