Sm4Util.java 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.citygis.utils;
  2. import cn.hutool.core.util.HexUtil;
  3. import cn.hutool.crypto.SmUtil;
  4. import cn.hutool.crypto.symmetric.SM4;
  5. import javax.crypto.SecretKey;
  6. /**
  7. * @Author: zyl
  8. * @CreateTime: 2024-12-13
  9. * @Description:
  10. * @Version: 1.0
  11. */
  12. public class Sm4Util {
  13. /**
  14. * 获取sm4秘钥
  15. *
  16. * @return sm4秘钥
  17. */
  18. public static String getSm4Key() {
  19. SM4 sm4 = SmUtil.sm4();
  20. SecretKey secretKey = sm4.getSecretKey();
  21. byte[] encoded = secretKey.getEncoded();
  22. return HexUtil.encodeHexStr(encoded);
  23. }
  24. /**
  25. * sm4加密
  26. *
  27. * @param content 文本
  28. * @param sm4Key sm4秘钥
  29. * @return 加密后的结果
  30. */
  31. public static String encrypt(String content, String sm4Key) {
  32. SM4 sm4 = new SM4(HexUtil.decodeHex(sm4Key));
  33. return sm4.encryptHex(content);
  34. }
  35. /**
  36. * @param content
  37. * @param sm4Key
  38. * @return 解密后的结果
  39. */
  40. public static String decrypt(String content, String sm4Key) {
  41. SM4 sm4 = new SM4(HexUtil.decodeHex(sm4Key));
  42. return sm4.decryptStr(content);
  43. }
  44. }