c# 3des ECBPKCS5Padding 模式 加密解密(BouncyCastle)

c# 3des ECBPKCS5Padding 模式 加密解密(BouncyCastle),第1张

c# 3des ECB/PKCS5Padding 模式 加密解密(BouncyCastle)
        public static string DESDecrypt(string strinput, string strkey)
        {
            try
            {

                byte[] inputArray = Convert.Frombase64String(strinput);
                byte[] key = Encoding.UTF8.GetBytes(strkey);

                IBufferedCipher cipher = CipherUtilities.GetCipher("DES/ECB/PKCS5Padding");

                cipher.Init(false, new KeyParameter(key));
                // cipher.Init(false, new ParametersWithIV(new DesParameters(key), key)); 带IV向量的算法可以用到。
                byte[] rv = new byte[cipher.GetOutputSize(inputArray.Length)];
                int tam = cipher.ProcessBytes(inputArray, 0, inputArray.Length, rv, 0);
                cipher.DoFinal(rv, tam);
                return Encoding.UTF8.GetString(rv.Remove());

            }
            catch (Exception ex)
            {

                return "";

            }

        }

        public static string DESEncrypt(string strinput, string strkey)
        {
            try
            {

                byte[] inputArray = Encoding.UTF8.GetBytes(strinput);
                byte[] key = Encoding.UTF8.GetBytes(strkey);

                IBufferedCipher cipher = CipherUtilities.GetCipher("DES/ECB/PKCS5Padding");
                //cipher.Init(true, new ParametersWithIV(new DesParameters(key), key));
                cipher.Init(true, new KeyParameter(key));
                byte[] rv = new byte[cipher.GetOutputSize(inputArray.Length)];
                int tam = cipher.ProcessBytes(inputArray, 0, inputArray.Length, rv, 0);
                cipher.DoFinal(rv, tam);
                return Convert.Tobase64String(rv.Remove());

            }
            catch (Exception ex)
            {
                return "";
            }

        }

超详细的算法介绍:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#Cipher

AES/CBC/NoPadding (128)
AES/CBC/PKCS5Padding (128)
AES/ECB/NoPadding (128)
AES/ECB/PKCS5Padding (128)
DES/CBC/NoPadding (56)
DES/CBC/PKCS5Padding (56)
DES/ECB/NoPadding (56)
DES/ECB/PKCS5Padding (56)
DESede/CBC/NoPadding (168)
DESede/CBC/PKCS5Padding (168)
DESede/ECB/NoPadding (168)
DESede/ECB/PKCS5Padding (168)
RSA/ECB/PKCS1Padding (1024, 2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)
————————————————
 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5669881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存