SHA256Util.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.its.utils;
  2. import java.security.MessageDigest;
  3. import java.security.NoSuchAlgorithmException;
  4. import java.security.SecureRandom;
  5. import java.util.Base64;
  6. public class SHA256Util {
  7. private static final String algorithm = "SHA-256";
  8. private static final String saltAlgorithm = "SHA1PRNG";
  9. public static String encrypt(String text) {
  10. StringBuffer sb = new StringBuffer();
  11. try {
  12. MessageDigest md = MessageDigest.getInstance(algorithm);
  13. md.update(text.getBytes());
  14. byte[] data = md.digest();
  15. for (byte b : data) {
  16. sb.append(String.format("%02x", b & 0xFF));
  17. }
  18. } catch (NoSuchAlgorithmException e) {
  19. return "";
  20. }
  21. return sb.toString();
  22. }
  23. public static String getSalt() {
  24. String salt;
  25. try {
  26. SecureRandom random = SecureRandom.getInstance(saltAlgorithm);
  27. byte[] bytes = new byte[16];
  28. random.nextBytes(bytes);
  29. salt = new String(Base64.getEncoder().encode(bytes));
  30. } catch (NoSuchAlgorithmException e) {
  31. return "1234567890";
  32. }
  33. return salt;
  34. }
  35. public static String encrypt(String text, String salt) {
  36. String saltText = text + salt;
  37. StringBuffer sb = new StringBuffer();
  38. try {
  39. MessageDigest md = MessageDigest.getInstance(algorithm);
  40. md.update(saltText.getBytes());
  41. byte[] data = md.digest();
  42. for (byte b : data) {
  43. sb.append(String.format("%02x", b & 0xFF));
  44. }
  45. } catch (NoSuchAlgorithmException e) {
  46. return "";
  47. }
  48. return sb.toString();
  49. }
  50. }