【问题标题】:gvNIX Typical security: advice how to add salt to passwordgvNIX 典型安全:建议如何在密码中添加盐
【发布时间】:2015-09-15 17:30:46
【问题描述】:

我正在使用带有 gvNIX 典型安全性(Spring 安全性)的 Spring Roo。这很好用!感谢制作者!

向具有典型安全性的密码哈希添加盐的最佳方法是什么?

【问题讨论】:

    标签: spring-roo gvnix


    【解决方案1】:

    尝试使用org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder 建议Spring Security documentation

    始终使用单向密码散列算法,例如 bcrypt,它使用内置的盐值,每个存储的密码都不同

    要做到这一点,请按照以下步骤操作:

    1. 修改applicationContext-security.xml 文件以更改messageDigestPasswordEncoder 定义,如下所示:

      <beans:bean 
          class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" 
          id="messageDigestPasswordEncoder"/>
      
    2. 将代码中MessageDigestPasswordEncoder的所有引用修改为BCryptPasswordEncoder

    3. BCryptPasswordEncoder.matches 方法替换任何字符串比较密码验证。 UserController.create 中的示例:

      // Replace
      //
      // if(!savedUser.getPassword().equals(user.getPassword())){
      //
      // by
      if(!messageDigestPasswordEncoder.matches(
               user.getPassword(), savedUser.getPassword())){     
      
    4. 使用messageDigestPasswordEncoder.encode 将密码存储在数据库中。

    这未经测试,但应该可以工作。

    祝你好运!

    【讨论】:

      【解决方案2】:

      你是英雄!

      一个小小的补充

      <beans:bean class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"
          id="bCryptPasswordEncoder">
          <beans:constructor-arg name="strength" value="11" />
      </beans:bean>
      

      代替原来的

      <beans:constructor-arg value="sha-256"/>
      

      是否可以将此标准添加到典型安全插件中?

      【讨论】:

      猜你喜欢
      • 2012-07-05
      • 2016-07-28
      • 2016-04-01
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 2013-08-23
      • 2011-11-10
      • 1970-01-01
      相关资源
      最近更新 更多