PasswordUtil.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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.User;
  7. public class PasswordUtil {
  8. private String algorithmName = "md5";
  9. private int hashIterations = 2;
  10. public void setAlgorithmName(String algorithmName) {
  11. this.algorithmName = algorithmName;
  12. }
  13. public void setHashIterations(int hashIterations) {
  14. this.hashIterations = hashIterations;
  15. }
  16. public void encryptPassword(User user) {
  17. user.setPassword(getEncryptPwd(user));
  18. }
  19. public String getEncryptPwd(User user) {
  20. return new SimpleHash(algorithmName, user.getPassword(), getSalt(user), hashIterations).toHex();
  21. }
  22. public String getEncryptPwd(String pwd, Date date) {
  23. return new SimpleHash(algorithmName, pwd, getSalt(date), hashIterations).toHex();
  24. }
  25. public ByteSource getSalt(User user) {
  26. return ByteSource.Util.bytes(String.valueOf(user.getCreateTime().getTime()));
  27. }
  28. public ByteSource getManageSalt(Admin admin) {
  29. return ByteSource.Util.bytes(String.valueOf(admin.getCreateTime().getTime()));
  30. }
  31. public ByteSource getSalt(Date date) {
  32. return ByteSource.Util.bytes(String.valueOf(date.getTime()));
  33. }
  34. }