spring security restful接口-改进json请求,以免传递明文密码
我有一个SpringMVC3.0WebApp,它使用SpringSecurity。我已经在spring安全登录服务中实现了一个基本的json服务,但就我而言,这还不够确定 在我的json请求中,我正在以纯文本形式传递以下类型spring security restful接口-改进json请求,以免传递明文密码,spring,spring-mvc,spring-security,Spring,Spring Mvc,Spring Security,我有一个SpringMVC3.0WebApp,它使用SpringSecurity。我已经在spring安全登录服务中实现了一个基本的json服务,但就我而言,这还不够确定 在我的json请求中,我正在以纯文本形式传递以下类型 {"j_username":"myPlainTextUsername", "j_password":"myPlainTextPassword" , "j_store":"1"} 我的所有密码都使用直接的md5加密存储在数据库中。我的应用程序使用以下spring配置 <
{"j_username":"myPlainTextUsername", "j_password":"myPlainTextPassword" , "j_store":"1"}
我的所有密码都使用直接的md5加密存储在数据库中。我的应用程序使用以下spring配置
<beans:bean id="userDetailsDao"
class="com.mycompany.reporting.dao.UserDetailsDaoImpl"/>
<beans:bean id="encoder"
class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"/>
<beans:bean id="authenticationProvider"
class="org.springframework.security.authentication.dao.DaoAuthenticationProvider"
p:userDetailsService-ref="userDetailsDao"
p:passwordEncoder-ref="encoder" />
<authentication-manager alias="authenticationManager" erase-credentials="false">
<authentication-provider ref="authenticationProvider"></authentication-provider>
</authentication-manager>
我不想把明文密码放在json请求中,而是想尝试通过包含一个md5哈希值为
用户名是盐
网址是盐
密码
然后我希望能够解密,将salt与密码分开,然后进行身份验证。我知道SpringSecurity允许salt,但我认为只有当密码与salt一起存储在db中时,它才有用
有人能帮我提出一些建议吗?春天有什么能帮我做我想做的事吗
非常感谢,md5不是可逆的。因此,如果您得到密码的md5散列,则只能将其与存储在数据库中的md5散列进行比较。只有当两个哈希使用相同的盐时,比较才会有意义 如果这是一个选项,那么在登录页面上使用https并继续以明文形式发送密码会更简单——但要通过https加密通道
如果没有,,您必须将密码存储为纯文本或可逆编码,这种编码看起来更好,但不会真正提高数据库的安全性,以便能够在两侧进行相同的哈希运算并比较哈希值。Thks获取反馈,但如果md5不可逆,internet上的这些站点如何将md5字符串解密为明文文本?另外,我对https知之甚少,但如果我将我的spring安全身份验证更改为使用它,这是否意味着当我使用明文密码向身份验证模块发送json请求时,它是安全的?没有人能闻到这气味password@Richie:站点不解密md5字符串。他们对明文字符串进行编码,并将其与md5字符串进行比较。出于安全考虑,除非实现中存在缺陷,否则没有人可以嗅探https流量,这是https的原因之一。您在auth config中没有什么需要更改的,只需在元素上添加requires channel=https属性即可。感谢您的帮助和建议。我要去看戏,看看我能做些什么