암호화 서비스
*************

이 장에서 설명하는 모듈은 다양한 암호화 알고리즘을 구현합니다. 가용성
은 설치에 달려있습니다. 유닉스 시스템에서는 "crypt" 모듈을 사용할 수도
있습니다. 다음은 개요입니다:

* "hashlib" --- Secure hashes and message digests

  * 해시 알고리즘

  * Usage

  * Constructors

    * "new()"

    * "md5()"

    * "sha1()"

    * "sha224()"

    * "sha256()"

    * "sha384()"

    * "sha512()"

    * "sha3_224()"

    * "sha3_256()"

    * "sha3_384()"

    * "sha3_512()"

  * Attributes

    * "algorithms_guaranteed"

    * "algorithms_available"

  * Hash Objects

    * "digest_size"

    * "block_size"

    * "name"

    * "update()"

    * "digest()"

    * "hexdigest()"

    * "copy()"

  * SHAKE 가변 길이 요약

    * "shake_128()"

    * "shake_256()"

    * "digest()"

    * "hexdigest()"

  * File hashing

    * "file_digest()"

  * 키 파생

    * "pbkdf2_hmac()"

    * "scrypt()"

  * BLAKE2

    * 해시 객체 만들기

      * "blake2b()"

      * "blake2s()"

    * 상수

      * "SALT_SIZE"

      * "SALT_SIZE"

      * "PERSON_SIZE"

      * "PERSON_SIZE"

      * "MAX_KEY_SIZE"

      * "MAX_KEY_SIZE"

      * "MAX_DIGEST_SIZE"

      * "MAX_DIGEST_SIZE"

    * 예

      * 간단한 해싱

      * 다른 요약 크기 사용하기

      * 키 해싱

      * 무작위 해싱

      * 개인화

      * 트리 모드

    * 크레딧

* "hmac" --- Keyed-Hashing for Message Authentication

  * "new()"

  * "digest()"

  * "update()"

  * "digest()"

  * "hexdigest()"

  * "copy()"

  * "digest_size"

  * "block_size"

  * "name"

  * "compare_digest()"

* "secrets" --- Generate secure random numbers for managing secrets

  * 난수

    * "SystemRandom"

    * "choice()"

    * "randbelow()"

    * "randbits()"

  * 토큰 생성

    * "token_bytes()"

    * "token_hex()"

    * "token_urlsafe()"

    * 토큰은 몇 바이트를 사용해야 합니까?

  * 기타 함수

    * "compare_digest()"

  * 조리법과 모범 사례
