类 SM4Util

java.lang.Object
com.sh.wf.common.sm.SM4Util

public class SM4Util extends Object

Description:

Title:首亨软件 - 聚天平台

从以下版本开始:
2022年1月4日
  • 字段详细资料

    • ALGORITHM_NAME

      public static final String ALGORITHM_NAME
      另请参阅:
    • ALGORITHM_NAME_ECB_PADDING

      public static final String ALGORITHM_NAME_ECB_PADDING
      另请参阅:
    • DEFAULT_KEY_SIZE

      public static final int DEFAULT_KEY_SIZE
      另请参阅:
  • 构造器详细资料

    • SM4Util

      public SM4Util()
  • 方法详细资料

    • generateKey

      public static String generateKey()
      自动生成密钥
      返回:
    • generateKey

      public static byte[] generateKey(int keySize) throws Exception
      参数:
      keySize -
      返回:
      抛出:
      Exception
    • encrypt

      public static String encrypt(String data)
    • encrypt

      public static String encrypt(String data, String key)
      sm4加密
      参数:
      data - 待加密字符串
      key - 16进制密钥(忽略大小写)
      返回:
      返回16进制的加密字符串
    • encrypt_Ecb_Padding

      public static byte[] encrypt_Ecb_Padding(byte[] key, byte[] data) throws Exception
      加密模式之Ecb
      参数:
      key -
      data -
      返回:
      抛出:
      Exception
    • decrypt

      public static String decrypt(String encryptedData)
    • decrypt

      public static String decrypt(String data, String key)
      sm4解密
      参数:
      data - 加密字符串
      key - 密钥
      返回:
      解密后的字符串
      抛出:
      Exception
    • decrypt_Ecb_Padding

      public static byte[] decrypt_Ecb_Padding(byte[] key, byte[] cipherText) throws Exception
      解密
      参数:
      key -
      cipherText -
      返回:
      抛出:
      Exception
    • verifyEcb

      public static boolean verifyEcb(String hexKey, String cipherText, String paramStr) throws Exception
      校验加密前后的字符串是否为同一数据
      参数:
      hexKey - 16进制密钥(忽略大小写)
      cipherText - 16进制加密后的字符串
      paramStr - 加密前的字符串
      返回:
      是否为同一数据
      抛出:
      Exception
    • encryptCryptoJs

      public static String encryptCryptoJs(String data, String key)
      使用hutool工具类实现加解密,这里主要是兼容前端js中的sm-crypto
      参数:
      data -
      key -
      返回:
    • decryptCryptoJs

      public static String decryptCryptoJs(String data, String key)
    • encryptCBC

      public static String encryptCBC(String data, String key, String iv)
      使用CBC加密
      参数:
      data -
      key -
      iv -
      返回:
    • decryptCBC

      public static String decryptCBC(String data, String key, String iv)
      使用CBC方式解密
      参数:
      data - 密文
      key - 密钥
      iv - 加盐
      返回: