# Discourse를 계정 제공자로 사용할 때 발생하는 PBKDF2 문제

**URL:** <https://meta.discourse.org/t/using-discourse-as-an-account-provider-and-pbkdf2-problems/287596>\
**Category:** Development\
**Created:** [12월 5, 2023, 4:22오후 UTC](https://meta.discourse.org/t/using-discourse-as-an-account-provider-and-pbkdf2-problems/287596 "2023-12-05T16:22:08Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)\
**Post date:** [12월 5, 2023, 11:38오후 UTC](https://meta.discourse.org/t/using-discourse-as-an-account-provider-and-pbkdf2-problems/287596/4 "2023-12-05T23:38:58Z")

</div>

> [@polyzium](#):
>
> PBKDF2 알고리즘의 다양한 구현 방식을 시도해 보았지만, 모두 동일한 해시(Discourse의 것과 다름)를 출력했습니다.

`openssl`의 구현 방식을 시도해 보셨나요? 우리가 사용하는 방식입니다(`discourse/lib/pbkdf2.rb`에서 확인하실 수 있습니다).

예를 들어, 사용자 비밀번호를 `swordfish#`으로 설정한 후:

```plaintext
discourse_development=# select password_hash, salt, password_algorithm from users where id=2;
-[RECORD 1]------+-----------------------------------------------------------------
password_hash | 67650523776bdc87ebcd2fc11719553c87b11e6c4da49806d9d5232460d2adc9
salt | 712ef44dd6fe6d6f0f1b6f702bb78459
password_algorithm | $pbkdf2-sha256$i=600000,l=32$

```

```plaintext
$ openssl kdf \
  -kdfopt pass:'swordfish#' \
  -kdfopt salt:712ef44dd6fe6d6f0f1b6f702bb78459 \
  -kdfopt digest:SHA-256 \
  -kdfopt iter:600000 \
  -keylen 32 \
  PBKDF2 \
  | tr -d : | tr '[:upper:]' '[:lower:]'
67650523776bdc87ebcd2fc11719553c87b11e6c4da49806d9d5232460d2adc9

```

---

_[View the full topic](https://meta.discourse.org/t/using-discourse-as-an-account-provider-and-pbkdf2-problems/287596)._
