相关疑难解决方法(0)

用户密码盐的最佳长度是多少?

当盐析和散列用户密码时,任何显然都会有所帮助.盐有多长时间有什么最佳做法吗?我将盐存储在我的用户表中,所以我希望在存储大小和安全性之间进行最佳权衡.是一个随机的10个字符的盐吗?或者我需要更长的时间?

encryption hash salt

126
推荐指数
4
解决办法
6万
查看次数

Bcrypt为同一输入生成不同的哈希值?

我刚刚为我的新grails项目添加了注册功能.为了测试它,我通过发送电子邮件和密码进行了注册.我使用bcrypt算法对密码进行哈希处理,然后将其保存到数据库中.

但是,当我尝试使用注册时提供的相同电子邮件和密码登录时,登录失败.我调试了应用程序,发现当我尝试与数据库中已经散列的哈希值进行比较时,为同一密码生成的哈希是不同的,因此登录失败(LoginController中的Registration.findByEmailAndPassword(params.email,hashPassd)) .groovy返回null).

这是我的域类Registration.groovy:

class Registration {

   transient springSecurityService

   String fullName
   String password
   String email

   static constraints = {
      fullName(blank:false)
      password(blank:false, password:true)
      email(blank:false, email:true, unique:true)
   }

   def beforeInsert = {
      encodePassword()
   }

   protected void encodePassword() {
      password = springSecurityService.encodePassword(password)
   }
}
Run Code Online (Sandbox Code Playgroud)

这是我的LoginController.groovy:

class LoginController {

   /**
    * Dependency injection for the springSecurityService.
    */
   def springSecurityService

   def index = {
      if (springSecurityService.isLoggedIn()) {
         render(view: "../homepage")
      }
      else {
         render(view: "../index")
      }
   }

   /**
    * Show the login page.
    */ …
Run Code Online (Sandbox Code Playgroud)

grails bcrypt

36
推荐指数
2
解决办法
2万
查看次数

如何在应用程序配置中管理密码

我正在研究一个与许多外部系统API交互的系统:s.他们中的大多数都需要某种身份验证.为了便于使用,有一个"应用程序可以访问"的AppConfig,它存储配置信息以及外部系统的凭据.

我的问题是,将用户名和密码(以明文形式)存储到应用程序配置文件中的外部系统是不是一个坏主意.如果是这样,你怎么避免它?

要访问配置文件,您必须危及服务器的文件系统或其他服务器(当然还有任何开发人员的系统)上的git存储库.我一直在考虑加密配置文件中的密码不会增加安全级别,因为加密密钥也必须存储在某个地方.我错了吗?

我非常感谢您解释如何解决这个问题的答案.

好的,所以这是我的最终解决方案.我使用OpenSSL创建了一个简单的库来加密和解密我的敏感数据.加载配置时,将从用户检索密钥,但在存储在文件中的生产服务器上除外.它仍然不是最佳解决方案,但它比我以前的"解决方案"更好.

谢谢您的回答.我会接受韦恩的回答,因为它是最有用的.

password-protection

4
推荐指数
1
解决办法
2399
查看次数

标签 统计

bcrypt ×1

encryption ×1

grails ×1

hash ×1

password-protection ×1

salt ×1