当前位置: 移动技术网 > IT编程>开发语言>c# > TripleDESCryptoServiceProvider CryptoStream

TripleDESCryptoServiceProvider CryptoStream

2020年03月19日  | 移动技术网IT编程  | 我要评论
using system.security.cryptography;

 static void main(string[] args)
        {
            string rawstring = "make every second count.";
            string encryptedstring = encrypt3des(rawstring);
            string decryptedstring = decrypt3des(encryptedstring);
            console.writeline($"raw:{rawstring}\nencrypted:{encryptedstring}\ndecrypted:{decryptedstring}");
            console.readline();
        }

        public static string encrypt3des(string rawstring, string encryptkey = "serenityserenityserenityserenity", string encryptiv = "04d4da042de=")
        {
            using (symmetricalgorithm tripledesprovider = new tripledescryptoserviceprovider())
            {
                try
                {
                    tripledesprovider.key = convert.frombase64string(encryptkey);
                    tripledesprovider.iv = convert.frombase64string(encryptiv);
                    tripledesprovider.mode = system.security.cryptography.ciphermode.cbc;
                    tripledesprovider.padding = system.security.cryptography.paddingmode.pkcs7;
                    using (icryptotransform ct = tripledesprovider.createencryptor(tripledesprovider.key, tripledesprovider.iv))
                    {
                        byte[] bytes = encoding.utf8.getbytes(rawstring);
                        using (memorystream ms = new memorystream())
                        {
                            using (cryptostream cs = new cryptostream(ms, ct, cryptostreammode.write))
                            {
                                cs.write(bytes, 0, bytes.length);
                                cs.flushfinalblock();
                                cs.close();
                                string result = convert.tobase64string(ms.toarray());
                                return result;
                            }
                        }
                    }
                }
                catch (exception ex)
                {
                    throw;
                }
            }
        }

        public static string decrypt3des(string rawstring, string encryptkey = "serenityserenityserenityserenity", string encryptiv = "04d4da042de=")
        {
            using (symmetricalgorithm tripledesprovider = new tripledescryptoserviceprovider())
            {
                try
                {
                    tripledesprovider.key = convert.frombase64string(encryptkey);
                    tripledesprovider.iv = convert.frombase64string(encryptiv);
                    tripledesprovider.mode = system.security.cryptography.ciphermode.cbc;
                    tripledesprovider.padding = system.security.cryptography.paddingmode.pkcs7;
                    using (icryptotransform ct = tripledesprovider.createdecryptor(tripledesprovider.key, tripledesprovider.iv))
                    {
                        byte[] bytes = convert.frombase64string(rawstring);
                        using (memorystream ms = new memorystream())
                        {
                            using (cryptostream cs = new cryptostream(ms, ct, cryptostreammode.write))
                            {
                                cs.write(bytes, 0, bytes.length);
                                cs.flushfinalblock();
                                cs.close(); 
                                string result = encoding.utf8.getstring(ms.toarray());
                                return result;
                            }
                        }
                    }
                }
                catch (exception ex)
                {
                    throw;
                }
            }
        }

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网