当前位置: 首页 > 面试题库 >

使用Spring Security 3哈希密码

阴飞星
2023-03-14
问题内容

如何使用Spring Security 3对密码进行哈希处理并对其加盐?


问题答案:

以编程方式,您可以按照以下步骤进行操作:

在application-
context.xml(在web.xml下的contextConfigLocation定义)文件中定义bean(此示例使用md5)。

<bean class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" id="passwordEncoder" />

然后自动连接密码编码器:

@Autowired
PasswordEncoder passwordEncoder;

在您的方法中或您想散列和加盐的任何地方。

passwordEncoder.encodePassword("MyPasswordAsString", "mySaltAsStringOrObject");

上面的调用应返回一个加盐的哈希值(作为String)。

那应该做。我假设您可以弄清楚所需的罐子。

更新

不言而喻,使用MD5并不是最好的主意。理想情况下,至少应使用SHA-256。可以使用来完成ShaPasswordEncoder

将上面的MD5 bean配置替换为:

<bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder">
     <constructor-arg value="256"/>
</bean>


 类似资料:
  • 每个人在建构 PHP 应用时终究都会加入用户登录的模块。用户的帐号及密码会被储存在数据库中,在登录时用来验证用户。 在存储密码前正确的 哈希密码 是非常重要的。密码的哈希操作是单向不可逆的,该哈希值是一段固定长度的字符串且无法逆向推算出原始密码。这就代表你可以哈希另一串密码,来比较两者是否是同一个密码,但又无需知道原始的密码。如果你不将密码哈希,那么当未授权的第三者进入你的数据库时,所有用户的帐号

  • 简介 Laravel Hash facade 为存储用户密码提供了安全的 Bcrypt 和 Argon2 哈希。如果您使用 Laravel 应用程序中内置的 LoginController 和 RegisterController 类,则默认情况下它们将使用 Bcrypt 进行注册和身份验证。 {tip} Bcrypt 是哈希密码的理想选择,因为它的「加密系数」可以任意调整,这意味着生成哈希所需的

  • 我是在阅读了一些关于php中会话管理的主题后开始进行安全讨论的,请查看:https://paragonie.com/blog/2015/04/secure-authentication-php-with-long-termer-persistence#title.2 引自章节:胡椒还是不胡椒? 一个更好的解决方案是,在将散列插入数据库之前对其进行加密,如果使用硬件分离,这种解决方案尤其有用。有了这

  • 问题内容: 给定密钥,有什么办法可以解密加密的MD5字符串? 问题答案: 尝试使用Google(请参阅使用Google破解MD5密码)或包含md5()之类的MD5散列的在线数据库;或GDATA(最后一个包含1,133,766,035个唯一条目)。

  • 我已经完成了一个android应用程序的开发,该应用程序使用facebook sdk与facebook集成。目前,我对这个应用程序没有任何问题需要解决,因为它功能齐全,运行良好——但尽管如此,我相信即使应用程序正在运行,我仍然不完全理解Android密钥散列是什么 1)据我所知,facebook sdk为开发者提供了一个独特的应用程序id,以了解他们与谁“交谈”,这样他们也可以控制谁是谁之类的人,

  • 问题内容: 我正在寻找一种使用mongoose将帐户保存到MongoDB的好方法。 我的问题是:密码是异步哈希的。设置器将无法在这里工作,因为它只能同步工作。 我考虑了两种方法: 创建模型的实例,并将其保存在哈希函数的回调中。 在“保存”上创建一个预钩子 这个问题有什么好的解决办法吗? 问题答案: mongodb博客上有一篇很棒的文章,详细介绍了如何实现用户身份验证。 http://blog.mo