파이썬에서 보안 해시(Secure Hash)와 메시지 다이제스트(Message Digest)를 처리하려면 hashlib 모듈을 사용해야 합니다. 이 모듈은 SHA1, SHA224, SHA256, SHA512 등 다양한 보안 해시 알고리즘과 RSA의 MD5 알고리즘에 대해 공통된 인터페이스를 제공합니다. 참고로 과거 방식의 알고리즘들은 메시지 다이제스트라 불렸으며, 새로운 방식들은 보안 해시라고 지칭합니다.hashlib 모듈을 사용하려면 파이썬 코드에서 먼저 모듈을 임포트해야 합니다.import hashlib이 모듈에는 md5, sh
HMAC(Hash-based Message Authentication Code, 해시 기반 메시지 인증 코드)은 암호화 해시 함수를 활용하여 메시지의 무결성과 인증을 검증하는 프레임워크입니다. HMAC은 MD5, SHA-1 등 다양한 해시 알고리즘과 함께 사용할 수 있습니다.HMAC의 핵심 아이디어는 실제 데이터와 비밀 키(secret key)를 함께 해싱한다는 것입니다. 최종 출력값에는 비밀 키가 포함되지 않은 상태로 전송되기 때문에, 수신 측에서 동일한 비밀 키를 가지고 있을 때만 결과를 검증할 수 있어 안전한 메시지 인증이 가
암호학적으로 안전한 난수가 필요하다면 Python의 secrets 모듈을 사용하는 것이 가장 좋습니다. 이 모듈은 보안 비밀번호 생성, 계정 인증, 보안 토큰 발급 등 민감한 정보를 다루는 작업에 특화되어 있습니다. 흔히 사용하는 random 모듈은 결과가 예측될 수 있어 보안 목적으로는 부적합합니다. 반면 secrets 모듈은 운영체제가 제공하는 암호학적으로 강력한 무작위 소스를 기반으로 동작한다는 점이 결정적인 차이입니다. secrets 모듈의 클래스와 함수를 사용하려면 먼저 코드 상단에서 모듈을 임포트해야 합니다. import
webbrowser 모듈이란? 파이썬으로 웹 기반 문서를 사용자에게 표시하고 싶을 때 가장 간편하게 활용할 수 있는 것이 바로 webbrowser 모듈입니다. 이 모듈은 웹 문서를 다루기 위한 고수준(high-level) 인터페이스를 제공하므로, 복잡한 내부 동작을 신경 쓰지 않고도 단 몇 줄의 코드만으로 웹 브라우저를 실행하고 원하는 URL을 열 수 있습니다. UNIX 계열 운영체제에서는 lynx, Netscape, Mosaic 등 다양한 브라우저를 지원하며, Windows와 Macintosh 환경에서는 시스템에 설치된 기본 브라
posix 모듈은 UNIX 환경에서 동작하며, 운영체제(OS)가 제공하는 다양한 기능을 Python에서 직접 사용할 수 있게 해주는 표준 라이브러리입니다. posix 모듈과 os 모듈의 관계 일반적으로 posix 모듈을 직접 임포트하지 않고 os 모듈을 사용하는 것이 권장됩니다. UNIX 시스템에서 os 모듈은 posix 모듈의 상위 집합(superset) 역할을 하기 때문입니다. 반면 Windows와 같은 비(非)UNIX 시스템에서는 posix 모듈 자체를 사용할 수 없지만, os 모듈은 일부 기능이 제한된 상태로 계속 사용할 수
리눅스 시스템에서 암호 데이터베이스(password database)에 접근하려면 Python의 pwd 모듈을 사용하면 됩니다. 이 모듈을 활용하면 사용자 계정 정보와 암호 데이터베이스에 쉽게 접근할 수 있으며, 각 데이터베이스 항목은 튜플(tuple)과 유사한 객체 형태로 반환됩니다.pwd 모듈을 사용하기 위해서는 먼저 다음과 같이 임포트해야 합니다.import pwd암호 데이터베이스 항목의 주요 속성암호 데이터베이스의 각 항목은 다음과 같은 속성들을 가지고 있습니다.인덱스속성 및 설명0pw_name사용자의 로그인 이름(사용자명)
UNIX 시스템의 섀도우 패스워드 데이터베이스(shadow password database)에 접근하려면 Python의 spwd 모듈을 사용해야 합니다. 섀도우 패스워드 파일은 민감한 정보(암호화된 비밀번호 등)를 담고 있으므로, 이 파일에 접근하려면 root 권한과 같은 충분한 시스템 권한이 필요합니다. 섀도우 패스워드 데이터베이스의 각 항목(entry)은 튜플과 유사한 객체 형태로 반환되며, 인덱스 또는 속성 이름으로 값을 조회할 수 있습니다. spwd 모듈 임포트하기 spwd 모듈을 사용하려면 먼저 다음과 같이 임포트합니다.
유닉스(UNIX) 그룹 데이터베이스에 접근하려면 파이썬의 grp 모듈을 사용해야 합니다. 이 모듈은 그룹 데이터베이스의 각 항목(entry)을 튜플과 유사한 객체 형태로 반환합니다.grp 모듈을 사용하려면 먼저 다음과 같이 임포트해야 합니다.import grpgrp 데이터베이스 항목의 주요 속성인덱스속성 및 설명0gr_name그룹의 이름1gr_passwd그룹의 암호화된 비밀번호 (일반적으로 비어 있음)2gr_gid그룹 ID (숫자형)3gr_mem그룹에 속한 사용자 목록그룹 객체에서 gid는 정수형이며, 그룹 이름과 비밀번호는 문자열
UNIX 시스템에서 사용자의 암호를 검증하려면 파이썬의 crypt 모듈을 사용해야 합니다. 이 모듈은 crypt(3) 루틴을 제공하며, 수정된 DES 알고리즘을 기반으로 하는 일방향 해시 함수(one-way hash function)입니다. crypt 모듈을 사용하려면 먼저 다음과 같이 임포트해야 합니다. import crypt crypt.crypt(word, salt) 메서드 crypt.crypt() 메서드는 두 개의 인자를 받습니다. word: 사용자가 입력한 평문 비밀번호입니다. salt: 무작위 문자열로, DES 알고리즘을
Python을 활용한 POSIX 스타일 TTY 제어 개요 Python의 termios 모듈은 POSIX 시스템에서 TTY(터미널) 입출력을 제어할 수 있는 인터페이스를 제공합니다. 이 모듈은 Unix 계열 운영체제에서만 사용 가능하며, Windows 환경에서는 지원되지 않습니다. termios 모듈을 사용하려면 먼저 임포트해야 합니다. import termios 이 모듈의 모든 메서드는 파일 디스크립터(file descriptor)를 인자로 받습니다. 주요 메서드들을 하나씩 자세히 살펴보겠습니다. 1. termios.tcgetat
유닉스(Unix) 계열 시스템에서 터미널의 동작 방식을 직접 제어하고 싶다면, 파이썬(Python)의 tty 모듈을 활용할 수 있습니다. 이 모듈을 사용하면 터미널을 raw 모드와 cbreak 모드라는 두 가지 모드 중 하나로 설정할 수 있으며, 키보드 입력을 Enter 키 없이 즉시 받아 처리하는 프로그램을 만들 때 특히 유용합니다. tty 모듈 임포트하기 tty 모듈은 파이썬 표준 라이브러리에 포함되어 있어 별도 설치 없이 바로 사용할 수 있습니다. 다음과 같이 임포트합니다. import tty tty 모듈에서 자주 사용되는 핵
Python의 pty 모듈은 의사 터미널(Pseudo-Terminal) 개념을 다루기 위해 정의된 유틸리티 모듈입니다. 이 모듈을 활용하면 새로운 프로세스를 시작하거나, 프로그램을 통해 제어 터미널(controlling terminal)에서 데이터를 읽고 쓰는 작업을 수행할 수 있습니다.pty 모듈의 플랫폼 제약pty 모듈은 플랫폼에 크게 의존적인 특성을 가지고 있습니다. 따라서 의사 터미널 관련 작업을 수행하려면 반드시 UNIX 계열 시스템(Linux, macOS 등) 환경에서 실행해야 합니다. Windows에서는 해당 모듈을 사
Python fcntl 모듈이란? 파일과 입출력(IO)을 세밀하게 제어하려면 fcntl 모듈을 사용해야 합니다. 이 모듈은 유닉스 계열 운영체제의 fcntl() 및 ioctl() 루틴에 대한 파이썬 인터페이스 역할을 하며, 파일 잠금, 파일 디스크립터 조작 등 저수준 파일 제어 작업을 수행할 수 있게 해줍니다. 이 모듈의 모든 메서드는 첫 번째 인수로 정수형 파일 디스크립터 또는 io.IOBase 객체를 받습니다. 모듈을 사용하려면 먼저 다음과 같이 임포트합니다. import fcntl fcntl 모듈의 주요 메서드 1. fcntl
쉘 파이프라인을 위한 Python 인터페이스 Python에서는 UNIX의 명령어 파이프라인(pipeline) 메커니즘을 손쉽게 활용할 수 있습니다. 명령어 파이프라인이란 여러 개의 셸 명령을 연결하여 한 파일의 데이터를 다른 파일로 단계적으로 변환·처리하는 방식입니다. 이 기능은 pipes 모듈을 통해 제공되며, 내부적으로 /bin/sh 셸의 명령줄을 사용합니다. 따라서 모듈이 동작하는 배경에는 os.system()과 os.popen() 같은 OS 관련 함수들이 함께 사용됩니다. 참고: pipes 모듈은 Python 3.11부터
UNIX 환경에서 프로그램의 리소스 사용량을 측정하고 제어하려면 Python의 resource 모듈을 활용할 수 있습니다. 이 모듈은 현재 프로세스가 사용한 CPU 시간, 메모리 등의 시스템 자원 정보를 조회하는 기능과 함께, 프로세스가 소비할 수 있는 자원의 상한선을 설정하는 기능도 제공합니다.모듈을 사용하려면 먼저 다음과 같이 임포트합니다.import resource리소스 제한(Resource Limits)resource 모듈에서는 setrlimit() 함수를 사용해 프로세스의 자원 사용량에 제한을 둘 수 있습니다. 이때 두 가
UNIX 시스템의 syslog 라이브러리를 활용해 시스템 로그를 기록하고 싶다면, 파이썬에서 기본 제공하는 syslog 모듈을 사용하면 됩니다. 이 모듈은 UNIX syslog 라이브러리의 주요 기능을 그대로 파이썬 인터페이스로 감싸고 있어, 별도의 외부 라이브러리 설치 없이 손쉽게 시스템 로거와 연동할 수 있습니다.syslog 모듈 가져오기모듈을 사용하려면 먼저 프로그램 상단에서 아래와 같이 임포트합니다.import syslog주요 메서드 살펴보기1. syslog.syslog(message) / syslog.syslog(prior
개요이 글에서는 파이썬(Python)으로 유닉스(UNIX) 셸 스타일의 패턴 매칭 기법을 활용하는 방법을 알아봅니다. 이를 위해 파이썬 표준 라이브러리에서 제공하는 fnmatch 모듈을 사용합니다. 이 모듈은 파일 이름과 패턴을 비교하여 일치 여부에 따라 True 또는 False를 반환합니다.사용하려면 먼저 표준 라이브러리인 fnmatch 모듈을 임포트해야 합니다.import fnmatch유닉스 터미널에는 패턴을 매칭할 때 사용하는 다양한 와일드카드가 있습니다.*(애스터리스크): 모든 문자열과 일치합니다.?(물음표): 단일 문자 하
이 글에서는 파이썬(Python)을 활용해 생일 알림 애플리케이션을 만드는 방법을 단계별로 살펴봅니다. 문제 정의 파이썬으로 오늘 날짜에 해당하는 생일이 있는지 자동으로 확인하고, 생일인 사람이 있다면 그 사람의 이름과 함께 시스템 알림(notification)을 보내는 애플리케이션을 만들어 보겠습니다. 이를 위해서는 날짜·월·사람 이름을 저장해 둘 조회용 파일(lookup file)이 필요합니다. 파일 형식은 다음과 같습니다. 또한 이 애플리케이션을 시작 프로그램(startup application)으로 등록하면, 시스템이 부팅
음성 인식은 홈 오토메이션, 인공지능(AI) 등 다양한 애플리케이션에서 가장 유용하게 활용되는 기능 중 하나입니다. 이 글에서는 Python과 Google Speech API를 사용해 음성 인식을 구현하는 방법을 단계별로 살펴보겠습니다.여기서는 마이크를 통해 음성을 입력받아 인식하는 방식으로 진행합니다. 마이크를 올바르게 설정하려면 몇 가지 파라미터를 지정해야 합니다.필요한 모듈 설치먼저 SpeechRecognition 모듈을 설치해야 합니다. 추가로 pyaudio 모듈을 설치하면(선택 사항) 다양한 오디오 모드를 설정할 수 있어
이 글에서는 Python을 활용하여 왕복 시간(RTT, Round Trip Time)을 측정하는 방법을 알아봅니다. RTT란 무엇인가? RTT(Round Trip Time)는 신호가 목적지까지 도달한 후 다시 돌아오기까지 걸리는 전체 시간을 의미합니다. 즉, 요청 신호를 보낸 순간부터 상대방이 보낸 확인(Acknowledge) 신호를 수신한 시점까지의 시간입니다. RTT 값이 작을수록 네트워크 연결이 빠르고 안정적이라고 판단할 수 있습니다. RTT에 영향을 주는 주요 요인 RTT 측정 결과는 다음과 같은 다양한 조건에 따라 달라질