/// <summary> /// /// </summary> /// <param name="encryText"></param> /// <param name="secretKey"></param> /// <param name="isPadding"></param> /// <returns></returns> public static String SM4DecryptECBFromBase64(string encryText, string secretKey, bool isPadding = true) { var keyBytes = System.Text.Encoding.UTF8.GetBytes((secretKey + "0000000000000000").Substring(0, 16)); var encryBytes = Helper.Decode(encryText); var sm4 = new SM4(); var plainBytes = sm4.DecryptECB(encryBytes, keyBytes, isPadding); return(System.Text.Encoding.UTF8.GetString(plainBytes)); }
/// <summary> /// /// </summary> /// <param name="plainText"></param> /// <param name="secretKey"></param> /// <param name="isPadding"></param> /// <returns></returns> public static String SM4EncryptECBToBase64(string plainText, string secretKey, bool isPadding = true) { var keyBytes = System.Text.Encoding.UTF8.GetBytes((secretKey + "0000000000000000").Substring(0, 16)); var plainBytes = System.Text.Encoding.UTF8.GetBytes(plainText); var sm4 = new SM4(); var encryBytes = sm4.EncryptECB(plainBytes, keyBytes, isPadding); return(System.Convert.ToBase64String(encryBytes)); }
/// <summary> /// /// </summary> /// <param name="plainText"></param> /// <param name="secretKey"></param> /// <param name="iv"></param> /// <param name="isPadding"></param> /// <returns></returns> public static String SM4EncryptCBCToHex(string plainText, string secretKey, string iv, bool isPadding = true) { var ivBytes = System.Text.Encoding.UTF8.GetBytes((iv + "0000000000000000").Substring(0, 16)); var keyBytes = System.Text.Encoding.UTF8.GetBytes((secretKey + "0000000000000000").Substring(0, 16)); var plainBytes = System.Text.Encoding.UTF8.GetBytes(plainText); var sm4 = new SM4(); var encryBytes = sm4.EncryptCBC(plainBytes, keyBytes, ivBytes, isPadding); return(cvt.BytesToHexString(encryBytes)); }