我个人将在
User模型中执行此操作。我的领域有吸气剂,所以在
setPassword方法中:
this.password = HashHelper.createPassword(password);
该
Hashhelper只是为多目的散列东西一个单例类。
在Hashelper中,我使用BCrypt,只需在Build.scala中添加以下内容
org.mindrot" % "jbcrypt" % "0.3m
加密看起来像:
public static String createPassword(String clearString) throws AppException { if (clearString == null) { throw new AppException("empty.password"); } return BCrypt.hashpw(clearString, BCrypt.gensalt());}解密看起来像:
public static boolean checkPassword(String candidate, String encryptedPassword) { if (candidate == null) { return false; } if (encryptedPassword == null) { return false; } return BCrypt.checkpw(candidate, encryptedPassword);}我喜欢使控制器尽可能简单,就像我看到的控制器一样,就像在用户操作和业务模型(在模型内部!)之间的流量控制器一样。



