今後のプロジェクトで ServiceStack を使用する予定ですが、パスワードのハッシュには bcrypt を使用したいと考えています。現在、組み込みリポジトリは SHA256 ハッシュを使用しています。既存の認証コードを活用して、代わりに bcrypt を使用する方法はありますか?
質問する
454 次
1 に答える
1
ここで明確にするために、ServiceStack の認証プロバイダーでのパスワードハッシュは、ユーザー名/パスワードを保存する認証プロバイダー、つまり資格情報/基本/ダイジェスト認証プロバイダーでのみ使用されます。
残念ながら、ハッシュ プロバイダーは、異なる UserAuthRepo プロバイダーのそれぞれのいくつかの場所で使用されるため、簡単に交換できません。 OrmLiteAuthRepositoryおよびRedisAuthRepositorySaltedHash()
を参照してください。
ServiceStack が現在使用している SHA256 SaltedHash と bcrypt でも動作するものの両方で動作する共有インターフェイスを考え出すことができれば、それをリファクタリングしてハッシュ プロバイダーをオーバーライド可能にすることができます。つまり、bcrypt ハッシュ プロバイダーをこのインターフェイスで動作させることはできますか?
public interface IHashProvider {
void GetHashAndSalt(byte[] Data, out byte[] Hash, out byte[] Salt);
void GetHashAndSaltString(string Data, out string Hash, out string Salt);
bool VerifyHash(byte[] Data, byte[] Hash, byte[] Salt);
bool VerifyHashString(string Data, string Hash, string Salt);
}
そうでなければ、両方で機能するものはありますか?
于 2012-10-10T19:08:41.430 に答える