목록Python (5)
topcue
github: https://github.com/topcue/Yacht-DiceProject커맨드 라인 인터페이스를 이용해 테트리스를 구현한 프로젝트를 보고 감명 받아 만들어 보았습니다.GUI 게임을 CLI로 구현하는 것이 가장 큰 목표입니다.터미널의 폰트가 고정폭인지 반드시 확인해주세요.추가적인 패키지 설치를 최대한 줄이고자 노력했습니다.가벼운 마음으로 진행한 토이 프로젝트입니다.convention은 PEP 8을 따르지만, 불가피하게 80글자를 넘는 줄이 있습니다.python3를 사용해주세요.ssh 등을 사용하는 경우 버벅임이 있을 수 있습니다.I was impressed by the project that implemented Tetris using the command line interface.T..
overview회사에서 과제를 하다가 파이썬으로 Curve25519 키 교환 연산을 해야할 일이 있었다.개인키와 공개키를 모두 알고 있는 상태에서 shared secret(key)을 연산하는 파이썬 코드만 필요했다.shared secret은 cocoa의 25519 Kit으로 계산되었는데, 이를 파이썬으로 구현해야했다.그런데 인터넷에 있는 대부분의 예제 코드로는 shared secret을 온전하게 계산하기 힘들다.예를 들어 이미 생성된 키를 이용해 shared secret을 계산하지 않고, 랜덤하게 키를 생성한 뒤 shared secret까지 랜덤하게 계산한다. 혹은 shared secret의 해시값만 반환하기도 한다.덕분에 curve25519관련 파이썬 패키지들을 많이 찾아보았다...그래서 파이썬을 이용..
AES CTR Set IV(counter value)회사 과제를 하다가 AES-128 CTR 모드를 복호화 할 일이 있었다.다음은 Swift와 Objective-C로 작성된 iOS Signal의 encryptDeviceName() 함수다.encryptDeviceName()// cipher_key = HmacSHA256(key=HmacSHA256(key=master_secret, “cipher”), input=synthetic_iv) let cipherKey = try computeCipherKey(masterSecret: masterSecret, syntheticIV: syntheticIV) // cipher_text = AES-CTR(key=cipher_key, input=plaintext, count..
파이썬 암호화 패키지 PyCrypto, PyCryptodome, PyCryptodomexPyCryptoPyCrypto(Python Cryptography Toolkit) 모듈은 2004년에 정식 버전이 배포된 오래된 암호화 모듈이다.하지만 pip에는 2013년 10월 18일에 마지막 버전인 pycrypto 2.6.1을 배포한 이후 더이상 업데이트되지 않고 있다.github에는 2014년 6월 20일에 마지막으로 커밋된 코드를 찾아볼 수 있다.게다가 block_templace.c의 ALGnew 함수에서 임의 코드 실행 공격이 가능한 힙 버퍼 오버플로우 취약점이 발견되어 CVE-2013-7459에 등록되었다. 이 취약점에 대한 패치를 발표하지 않고 더이상의 업데이트도 찾아 볼 수 없다.그래서 PyCrypto..
파이썬에서 venv 명령어가 뭘까 검색하다가 정리 지금까지 파이썬과 파이썬 패키지를 잘 사용하고 있었는데, 어제부터 새로운 프로젝트를 시작했다. 파이썬 버전과 패키지가 달라서 어떻게 할까 고민하다 찾은 것이 파이썬 가상 환경이다. 가상 환경을 만들면 그 안에서 독립적인 파이썬 버전과 패키지를 관리할 수 있다. 아래 명령어로 가상 환경을 설정한다. python -m venv [dir] python -m venv [dir] 다음 명령어로 가상 환경을 켤 수 있다. source [PATH_to_dir]/bin/activate source [PATH_to_dir]/bin/activate 파이썬 가상 환경이 켜진 상태에서 code 명령어로 개발을 시작할 수 있고, deactivate로 끌 수 있다. 가상 환경을 ..