PasswordUtil.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.goafanti.common.utils;
  2. import java.util.Date;
  3. import org.apache.shiro.crypto.hash.SimpleHash;
  4. import org.apache.shiro.util.ByteSource;
  5. import com.goafanti.common.model.Admin;
  6. import com.goafanti.common.model.AftUser;
  7. import com.goafanti.common.model.User;
  8. public class PasswordUtil {
  9. private String algorithmName = "md5";
  10. private int hashIterations = 2;
  11. public void setAlgorithmName(String algorithmName) {
  12. this.algorithmName = algorithmName;
  13. }
  14. public void setHashIterations(int hashIterations) {
  15. this.hashIterations = hashIterations;
  16. }
  17. public void encryptPassword(User user) {
  18. user.setPassword(getEncryptPwd(user));
  19. }
  20. public void encryptPassword(Admin admin){
  21. admin.setPassword(getEncryptPwd(admin));
  22. }
  23. public String getEncryptPwd(User user) {
  24. return new SimpleHash(algorithmName, user.getPassword(), getSalt(user), hashIterations).toHex();
  25. }
  26. public String getEncryptPwd(Admin admin) {
  27. return new SimpleHash(algorithmName, admin.getPassword(), getManageSalt(admin), hashIterations).toHex();
  28. }
  29. public String getEncryptPwd(String pwd, Date date) {
  30. return new SimpleHash(algorithmName, pwd, getSalt(date), hashIterations).toHex();
  31. }
  32. public ByteSource getSalt(User user) {
  33. return ByteSource.Util.bytes(String.valueOf(user.getCreateTime().getTime()));
  34. }
  35. public ByteSource getManageSalt(Admin admin) {
  36. return ByteSource.Util.bytes(String.valueOf(admin.getCreateTime().getTime()));
  37. }
  38. public ByteSource getAftSalt(AftUser aftUser) {
  39. return ByteSource.Util.bytes(String.valueOf(aftUser.getCreateTime().getTime()));
  40. }
  41. public ByteSource getSalt(Date date) {
  42. return ByteSource.Util.bytes(String.valueOf(date.getTime()));
  43. }
  44. }