我正在寻找有关如何处理Java独立应用程序中的密码字段的最佳实践(NetBeans Spring Spring Hibernate MySQL数据库 Swing)。
1)我已经创建了一个带有密码列的表。2)您建议在我的应用程序上关注和实施哪种级别的级算法?3)您是否建议将密码保存为普通文本,或者根据算法进行转换后?4)所有此过程的样本代码
我希望我们可以帮助许多其他开发人员必须处理独立应用程序以及在此类问题上进行冬眠的任务。
事先感谢您的任何建议。
您切勿将密码作为纯文本存储在您的应用程序中。它不建议用于高度担保的申请。您可以使用弹簧框架本身提供的密码编码器将密码以编码格式存储到数据库中。您需要在ApplocationContext.xml文件中进行以下设置。
<security:authentication-manager>
<security:authentication-provider >
<security:jdbc-user-service data-source-ref="dataSource"
users-by-username-query="
select emailid username,password,'true' enabled from tbl_LoginDetails
where emailid=?"
authorities-by-username-query="
select a.emailid username,b.authority from tbl_LoginDetails a,tbl_UserRoles b
where a.userId=b.userId
and a.emailid=?"/>
<security:password-encoder ref="passwordEncoder">
</security:password-encoder>
</security:authentication-provider>
</security:authentication-manager>
<bean name="passwordEncoder" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder"></bean>
在用户注册时,您需要自己在控制器中对密码进行编码,然后再存储在数据库中使用类ShaPasswordEncoder
。
希望这对您有帮助。