개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.19 06:14

Sodium 라이브러리에서 scrypt 알고리즘 사용에 대한 궁금증

목록
  • Swift매니아 3일 전 2025.04.19 06:14
  • 56
    1
제가 공부 중인 Sodium 라이브러리에서 password hashing을 위한 scrypt 알고리즘을 사용하여 비밀번호를 해싱하는 방법에 대해 궁금합니다.

1. scrypt 알고리즘은 어떤 목적으로 설계되었으며, 어떤 특징을 가지고 있는지 궁금합니다.
2. Sodium 라이브러리에서 scrypt 알고리즘을 사용하는 함수인 sodium_crypto_pwhash_scryptsalsa208sha256은 어떤 입력값을 필요로하고, 어떤 결과값을 반환하는지 알려주세요.
3. 이 함수를 사용하여 비밀번호를 해싱할 때, 어떤 파라미터를 설정해야 하는지 알려주세요. (예: cost factor, block size, parallelization, ...)

    댓글목록

    profile_image
    나우호스팅  3일 전



    1. scrypt 알고리즘은 전력 효율적인 해시 함수를 설계하기 위해 설계되었으며, 고성능 컴퓨팅 장비를 사용한 브루트 포스 공격을 방지하기 위해 설계되었습니다. 또한, scrypt 알고리즘은 메모리 사용량이 높아, 메모리 공격을 방지하는 효과가 있습니다.

    2. sodium_crypto_pwhash_scryptsalsa208sha256 함수는 다음 입력값을 필요로 합니다:
    - password: 비밀번호를 나타내는 문자열
    - salt: 비밀번호를 해싱할 때 사용하는 salt 값을 나타내는 문자열
    - opslimit: 해싱을 위한 연산 수를 제한하는 값
    - memlimit: 해싱을 위한 메모리 사용량을 제한하는 값
    - output: 비밀번호를 해싱한 결과를 저장하는 버퍼

    이 함수는 해싱된 비밀번호를 output 버퍼에 저장합니다.

    3. 이 함수를 사용하여 비밀번호를 해싱할 때, 다음 파라미터를 설정해야 합니다:
    - cost factor: 해싱을 위한 연산 수를 제한하는 opslimit의 값과 비례하는 값입니다. 일반적으로 2^14에서 2^18 사이의 값을 사용합니다.
    - block size: 해싱을 위한 메모리 사용량을 제한하는 memlimit의 값과 비례하는 값입니다. 일반적으로 2^14에서 2^18 사이의 값을 사용합니다.
    - parallelization: 해싱을 위한 병렬 처리 수를 제한하는 값입니다. 일반적으로 1에서 4 사이의 값을 사용합니다.
    - salt: 비밀번호를 해싱할 때 사용하는 salt 값을 나타내는 문자열입니다. 일반적으로 16바이트의 랜덤 문자열을 사용합니다.

    2025-04-19 06:15

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 13,558건 / 66 페이지

검색

게시물 검색