2016-05-21 4 views
2

私はWebアプリケーションを構築しています。テーブルUserの他のフィールドには、enc_passwとsaltがあります。 Clojureでハッシュ/暗号化パスワードを作成する慣習的な方法は何ですか?最も信頼できる、まともな図書館は何ですか?Clojureで安全に暗号化されたパスワードを作成するにはどうすればよいですか?

また、ハッシュ/暗号化されたパスワードを計算するために実際のパスワードと塩を連結するだけですか?例:

(secure_hash (str "my_real_pass" "my_salt")) 
+0

参照[バディ](https://github.com/funcool/buddy)をお読みください。特に、別のソルトフィールドを使用せず、代わりに[buddy.hashers](https://funcool.github.io/buddy-hashers/latest/)の機能を使用します。 –

+0

@CurtisSummers、 "buddy"は、私が必要としない多くの機能を提供します。 –

+3

他のバディライブラリとは別に 'buddy-hashers'を使うことができます。これは[Bouncy Castle](https://www.bouncycastle.org/)の暗号ハッシュを囲む小さなラッパーです。 –

答えて

1

友人の資格情報の実装hereを見てください。

[org.mindrot/jbcrypt "0.3m"]を使用しています。

(defn hash-bcrypt 
    "Hashes a given plaintext password using bcrypt and an optional 
    :work-factor (defaults to 10 as of this writing). Should be used to hash 
    passwords included in stored user credentials that are to be later verified 
    using `bcrypt-credential-fn`." 
    [password & {:keys [work-factor]}] 
    (BCrypt/hashpw password (if work-factor 
          (BCrypt/gensalt work-factor) 
          (BCrypt/gensalt)))) 

あなたはbcrypt上の議論をしたい場合は、Codaのhere

+0

塩分が必要でない理由については、あなたのリンク部分を引用する価値があります。それはパスワードセキュリティプロトコルの変更だと私は信じています。いずれにせよ、良い答え。 – DonyorM

関連する問題