2016-10-19 33 views
-2

我是新來的春天。我需要做一個用戶註冊表單,用戶將提供他們的基本信息和密碼,我直接保存到database.password是註冊bean中的字符串數據類型和數據庫中的varchar。 現在我的做法是,我將通過手機或網站向該Web服務進行服務呼叫,並以純文本形式發送密碼。 但我認爲這不是一個好方法,因爲通過webservice或服務器代碼或數據庫發送數據時沒有安全性,密碼只是一個驗證很少的字符串。 根據行業標準,是否有一個很好的方法來完成這項任務。 預先感謝您。爲春天的webservice添加安全密碼

另外我想我的密碼不應該被黑客或服務器攔截。密碼應該以加密形式從客戶端進入,並保存在數據庫中。沒有人管理服務器/數據庫應該看到該密碼。

+1

在下面的鏈接中給出的答案可能有助於[在客戶端哈希密碼](http://security.stackexchange.com/questions/8596/https-security-should-password -BE哈希的服務器端 - 或客戶端) –

回答

0

使用Spring Security提供的BCryptPasswordEncoder來加密用戶的密碼並將散列的密碼字符串存儲到數據庫。

例子:

@Transactional 
@Override 
public User create(UserCreateForm form) { 
    User user = new User(); 
    user.setEmail(form.getEmail()); 
    user.setPasswordHash(new BCryptPasswordEncoder().encode(form.getPassword())); 
    user.setRole(form.getRole()); 
    return userRepository.save(user); 
}