【问题标题】:What encryption is used by default SecureSocial for SecureSocialPasswordHasher?SecureSocialPasswordHasher 默认使用什么加密方式 SecureSocial?
【发布时间】:2014-09-22 04:18:38
【问题描述】:

我有一个数据存储区的密码,这些密码是使用 securesocial.utils.SecureSocialPasswordHasherSecureSocial 包中的 SecureSocialPasswordHasher.passwordHash 方法进行哈希处理的,我必须通过 Python 验证它们。

因此,使用SecureSocial(或整个 Play Framework)是不可能的。问题是:调用该方法时它用于散列是什么?从文档来看,它似乎是Bcrypt,但还不够清楚,我无法确定。

---------编辑---------

我在SecureSocial 论坛上被告知,它确实使用Bcrypt,默认工作系数为10。但是,它并不能反映我在数据存储中看到的内容。

那里有两列,一列用于盐,另一列用于散列密码。它们都没有Bcrypt 标头(例如$2a$10$)。此外,salt 大小只有 11 个字符长,散列密码只有 22 个字符长(字符串中没有 salt 的迹象)。

【问题讨论】:

  • 工作系数 10 和 10 轮不是一回事。轮数是工作因子的指数。
  • 谢谢,我的错。在我看来这是对的,但写错了术语。现已更正。

标签: python encryption playframework passwords securesocial


【解决方案1】:

发现SecureSocial 上的默认哈希密码确实是Bcrypt

它的哈希方法的默认实现是:

  def hash(plainPassword: String): PasswordInfo = {
        PasswordInfo(id, BCrypt.hashpw(plainPassword, BCrypt.gensalt(logRounds)))
  }

这适用于最新版本的SecureSocial

在我的具体问题上,主要问题是我没有被告知我正在处理的代码使用的是旧版本的 SecureSocial,并且 has 方法已被覆盖。

【讨论】:

    猜你喜欢
    • 2016-06-09
    • 2011-06-29
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    相关资源
    最近更新 更多