【问题标题】:Grails Spring Security Core - Generating password manuallyGrails Spring Security Core - 手动生成密码
【发布时间】:2015-01-08 04:14:08
【问题描述】:

我正在尝试手动生成密码以将其直接插入数据库。但不幸的是我不工作。

Spring 安全核心设置为使用 MD5 编码。我在 md5 哈希生成网页中生成了一个新密码,更新了 bbdd 但我无法使用该用户登录。

我猜它在编码之前有一些特定的结构,但我不知道。

【问题讨论】:

  • 嗨 kix300zx,您是否尝试使用 springSecurityService.passwordEncoder 对您的密码进行编码?
  • 密码请不要使用MD5。这比存储明文密码好不了多少。至少使用适当的盐,并尽快迁移到 bcrypt。

标签: grails spring-security grails-2.0 grails-plugin


【解决方案1】:

看看basespasswordencoder类的源码就知道了。

protected String mergePasswordAndSalt(String password, Object salt, boolean strict) {
        if (password == null) {
            password = "";
        }

        if (strict && (salt != null)) {
            if ((salt.toString().lastIndexOf("{") != -1) || (salt.toString().lastIndexOf("}") != -1)) {
                throw new IllegalArgumentException("Cannot use { or } in salt.toString()");
            }
        }

        if ((salt == null) || "".equals(salt)) {
            **return password**;
        } else {
            **return password + "{" + salt.toString() + "}"**;
        }
    }
}

http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.security/spring-security-core/3.0.1.RELEASE/org/springframework/security/authentication/encoding/BasePasswordEncoder.java#BasePasswordEncoder.mergePasswordAndSalt%28java.lang.String%2Cjava.lang.Object%2Cboolean%29

【讨论】:

    猜你喜欢
    • 2019-05-09
    • 2017-06-20
    • 1970-01-01
    • 2014-07-29
    • 2012-04-10
    • 2013-11-21
    • 2012-09-12
    • 1970-01-01
    • 2011-09-12
    相关资源
    最近更新 更多