Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
        }