AES 암호화에 대해서 고생한 기억이 있어서 적으려고 했는데 다른 블로그들 보면
pycrypto 을 install 하라는 사람들이 많아서..
pycrypto는 2013년 마지막 업데이트이고
암호화 코드 만들다 보면
Random 안 collect 함수 time.clock() 에서 오류난다.
from Crypto import Random
def collect(self):
# Collect 64 bits of entropy from the operating system and feed it to Fortuna.
self._osrng_es.feed(self._osrng.read(8))
# Add the fractional part of time.time()
t = time.time()
self._time_es.feed(struct.pack("@I", int(2**30 * (t - floor(t)))))
# Add the fractional part of time.clock()
t = time.clock()
self._clock_es.feed(struct.pack("@I", int(2**30 * (t - floor(t)))))
The function time.clock() has been removed, after having been deprecated since Python 3.3:
use time.perf_counter() or time.process_time()
python3.3 이후로는 업데이트 되지않고 남아 있다가 , python 3.8 에서 완전히 사라진 것으로 보인다.
해결 방법
pip uninstall pycrypto # pycrypto 삭제
pip install pycryptodome # pycryptodome 설치
pycrypto 는 삭제하고 pycryptodome 을 사용하면 된다.
( pycrypto 라이브러리를 fork 하여 개선함)
https://pypi.org/project/pycryptodome/#history
'Language > Python' 카테고리의 다른 글
[Python] type annotation (type hint) (0) | 2022.02.27 |
---|---|
[Python] pip requirements.txt (0) | 2022.01.31 |
[Python] AES 암호/복호화 (2) | 2022.01.31 |
[Python] Object type <class 'str'> cannot be passed to C code (AES) (0) | 2022.01.31 |
[Python] 환경 설정 (Vscode, Mac) (1) | 2022.01.09 |