我在angularjs中创建一个登录/注册表单并使用spring boot。当我注册用户时,我使用以下代码将数据发送到数据库:
@RequestMapping(value = "/register",method = RequestMethod.POST)
public User addUser(@RequestBody User user) {
LOGGER.info("Received request to create the {}", user);
return repo.saveAndFlush(user);
}
如何将密码加密到数据库中?
然后我也想为登录创建类似的东西。 但是我如何从json格式的服务器返回到angularjs。 这是安全的吗?以及如何处理密码加密? 验证时是否也可以隐藏密码?
答案 0 :(得分:2)
通常我们不对密码进行加密,但我们对其进行哈希处理,因此无法获取密码。当用户尝试连接到应用程序时,您需要散列密码并将其与存储在数据库中的散列密码进行比较。
我正在使用spring security BCrypt password encoder来哈希。它使用起来非常简单。
您可以找到大量有关如何在java中哈希密码的示例。这是一个example。
为了将Json格式的用户返回给客户端,您只需添加此注释:@ResponseBody(Spring MVC使用Jackson将其转换为Json格式)。
@RequestMapping(value = "/register",method = RequestMethod.POST)
public @ResponseBody User addUser(@RequestBody User user) {
.....
return user
}