@RestController使用hibernate在json中加密和发送数据

时间:2015-09-21 17:38:19

标签: angularjs spring hibernate

我在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。 这是安全的吗?以及如何处理密码加密? 验证时是否也可以隐藏密码?

1 个答案:

答案 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
}