我正在从php平台迁移到Java。我拥有数据库,其中包含数据加密标准(DES)中存储密码的用户。我通常会使用自定义authenticationService执行类似的操作:
@Autowired
private AuthenticationServiceImpl authenticationService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(authenticationService)
.passwordEncoder(new BCryptPasswordEncoder());
}
显然不会与bCrypt一起工作。有什么建议吗?
答案 0 :(得分:1)
您需要编写自己使用DES的PasswordEncoder。它不应该是困难的,您可以搜索如何使用DES解密/加密数据(作为example)。
只是为了让您知道,加密密码是一种非常非常非常糟糕的做法(我建议将其置于犯罪之下),就像您的数据库和密钥被泄露一样,攻击者可以非常轻松地访问纯文本密码,并尝试重新使用其他网站上的登录详细信息。
由于您可以访问纯文本密码,因此请考虑将它们转换为bcrypt并删除DES加密密码(从您的数据库中删除,并希望从您可能拥有的任何备份中删除)