public string Decrypt_ECB(string cipherText) { SM4_Context ctx = new SM4_Context(); ctx.isPadding = true; ctx.mode = SM4.SM4_DECRYPT; byte[] keyBytes; if (hexString) { keyBytes = Decode(secretKey); } else { keyBytes = Encoding.ASCII.GetBytes(secretKey); } SM4 sm4 = new SM4(); sm4.sm4_setkey_dec(ctx, keyBytes); byte[] decrypted = sm4.sm4_crypt_ecb(ctx, Decode(cipherText)); if (decrypted == null) { return(string.Empty); } else { return(Encoding.Default.GetString(decrypted)); } }
public string Encrypt_CBC(string plainData) { SM4_Context ctx = new SM4_Context(); ctx.isPadding = true; ctx.mode = SM4.SM4_ENCRYPT; byte[] keyBytes; byte[] ivBytes; if (hexString) { keyBytes = Decode(secretKey); ivBytes = 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(plainData)); //return Hex.Encode(encrypted); //return encrypted; string cipherText = Encoding.Default.GetString(Encode(encrypted)); return(cipherText); }
public string Decrypt_CBC(string cipherData) { SM4_Context ctx = new SM4_Context(); ctx.isPadding = true; ctx.mode = SM4.SM4_DECRYPT; byte[] keyBytes; byte[] ivBytes; if (hexString) { keyBytes = Decode(secretKey); ivBytes = Decode(iv); } else { keyBytes = Encoding.Default.GetBytes(secretKey); ivBytes = Encoding.Default.GetBytes(iv); } SM4 sm4 = new SM4(); sm4.sm4_setkey_dec(ctx, keyBytes); byte[] decrypted = sm4.sm4_crypt_cbc(ctx, ivBytes, Decode(cipherData)); if (decrypted == null) { return(string.Empty); } else { return(Encoding.Default.GetString(decrypted)); } //return decrypted; }