• C# 3DES 加密算法


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;

    namespace ChalwinIssue
    {
        /// <summary>
        /// 加解密类
        /// </summary>
        public class EdOperator
        {
            //密钥
            private const string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiB7NLQM3";
            //向量,必须是12个字符
            private const string sIV = "andyliu1234=";

            //构造一个对称算法
            private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();

            #region 加密解密函数

            /// <summary>
            /// 字符串的加密
            /// </summary>
            /// <param name="Value">要加密的字符串</param>
            /// <returns>加密后的字符串</returns>
            public string EncryptString(string Value)
            {
                try
                {
                    ICryptoTransform ct;
                    MemoryStream ms;
                    CryptoStream cs;
                    byte[] byt;
                    mCSP.Key = Convert.FromBase64String(sKey);
                    mCSP.IV = Convert.FromBase64String(sIV);
                    //指定加密的运算模式
                    mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
                    //获取或设置加密算法的填充模式
                    mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
                    ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);//创建加密对象
                    byt = Encoding.UTF8.GetBytes(Value);
                    ms = new MemoryStream();
                    cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
                    cs.Write(byt, 0, byt.Length);
                    cs.FlushFinalBlock();
                    cs.Close();

                    return Convert.ToBase64String(ms.ToArray());
                }
                catch (Exception ex)
                {
                    //MessageBox.Show(ex.Message, "出现异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return ("Error in Encrypting " + ex.Message);
                }
            }

            /// <summary>
            /// 解密字符串
            /// </summary>
            /// <param name="Value">加密后的字符串</param>
            /// <returns>解密后的字符串</returns>
            public string DecryptString(string Value)
            {
                try
                {
                    ICryptoTransform ct;//加密转换运算
                    MemoryStream ms;//内存流
                    CryptoStream cs;//数据流连接到数据加密转换的流
                    byte[] byt;
                    //将3DES的密钥转换成byte
                    mCSP.Key = Convert.FromBase64String(sKey);
                    //将3DES的向量转换成byte
                    mCSP.IV = Convert.FromBase64String(sIV);
                    mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
                    mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
                    ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);//创建对称解密对象
                    byt = Convert.FromBase64String(Value);
                    ms = new MemoryStream();
                    cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
                    cs.Write(byt, 0, byt.Length);
                    cs.FlushFinalBlock();
                    cs.Close();

                    return Encoding.UTF8.GetString(ms.ToArray());
                }
                catch (Exception ex)
                {
                    //MessageBox.Show(ex.Message, "出现异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return ("Error in Decrypting " + ex.Message);
                }
            }

            #endregion
        }
    }

  • 相关阅读:
    今天要查一下,如果没有密保手机的号码在使用,怎么更换qq的密保手机
    昨天晚上让妈妈弄了一下机顶盒的安装
    Help Tomisu UVA
    UVA 1363 Joseph's Problem 找规律+推导 给定n,k;求k%[1,n]的和。
    UVA 1640 The Counting Problem UVA1640 求[a,b]或者[b,a]区间内0~9在里面各个数的数位上出现的总次数。
    ZOJ 3962 Seven Segment Display 16进制的八位数加n。求加的过程中所有的花费。显示[0,F]有相应花费。
    ZOJ 3963 Heap Partition set维护。给一个序列,将其划分成尽量少的序列,使每一个序列满足按照顺序构造二叉树,父母的值<=孩子的值。
    Irrelevant Elements UVA
    GCD XOR UVA 12716 找规律 给定一个n,找多少对(a,b)满足1<=b<=a<=n,gcd(a,b)=a^b;
    Colossal Fibonacci Numbers! UVA 11582 寻找循环节
  • 原文地址:https://www.cnblogs.com/liuxchen/p/2592766.html
Copyright © 2020-2023  润新知