public String Encrypt_CBC(String plainText) { SM4Context ctx = new SM4Context(); ctx.isPadding = true; ctx.mode = SM4.SM4_ENCRYPT; byte[] keyBytes; byte[] ivBytes; if (hexString) { keyBytes = Hex.Decode(secretKey); ivBytes = Hex.Decode(iv); } else { keyBytes = Encoding.Default.GetBytes(secretKey); ivBytes = Encoding.Default.GetBytes(iv); } SM4 sm4 = new SM4(); sm4.sm4_setkey_enc(ctx, keyBytes); byte[] encrypted = sm4.sm4_crypt_cbc(ctx, ivBytes, Encoding.Default.GetBytes(plainText)); String cipherText = Encoding.Default.GetString(Hex.Encode(encrypted)); return(cipherText); }
public byte[] encryptECB(String key, Boolean isPadding, byte[] expectedBytes) { SM4Context ctx = new SM4Context(); ctx.isPadding = isPadding; ctx.mode = SM4.SM4_ENCRYPT; secretKey = key; byte[] keyBytes; if (hexString) { keyBytes = Hex.Decode(secretKey); } else { keyBytes = Encoding.Default.GetBytes(secretKey); } SM4 sm4 = new SM4(); sm4.sm4_setkey_enc(ctx, keyBytes); byte[] encrypted = sm4.sm4_crypt_ecb(ctx, expectedBytes); return(encrypted); }