示例#1
0
        /// <summary>
        /// 解密函数
        /// </summary>
        /// <param name="Content">解密内容</param>
        /// <param name="privateKey">私钥(XML格式)</param>
        /// <param name="rsaDes">经RSA加密后的desKey与desIV的集合</param>
        /// <param name="desKey">经RSA解密后的desKey</param>
        /// <param name="desIV">经RSA解密后的desKey</param>
        /// <returns>string</returns>
        public string DecryptString(string Content, string privateKey, string rsaDes, out string desKey, out string desIV)
        {
            string strResult = "";

            if (FunctionHelper.CheckValiable(rsaDes))
            {
                // 解密DES密钥和初始化向量
                RSACrypto RC = new RSACrypto();

                string des = RC.RSADecrypt(privateKey, rsaDes);

                string[] desArray = FunctionHelper.SplitArray(des, '§');

                desKey = desArray[0];
                desIV  = desArray[1];


                // DES解密内容
                DESCrypto DC = new DESCrypto();
                strResult = DC.DecryptString(Content, desKey, desIV);
            }
            else
            {
                desKey    = "";
                desIV     = "";
                strResult = Content;
            }


            return(strResult);
        }
        /// <summary>
        /// 解密函数
        /// </summary>
        /// <param name="Content">解密内容</param>
        /// <param name="privateKey">私钥(XML格式)</param>
        /// <param name="rsaDes">经RSA加密后的desKey与desIV的集合</param>
        /// <param name="desKey">经RSA解密后的desKey</param>
        /// <param name="desIV">经RSA解密后的desKey</param>
        /// <returns>string</returns>
        public string DecryptString(string Content, string privateKey, string rsaDes, out string desKey, out string desIV)
        {
            string strResult = "";

            if (FunctionHelper.CheckValiable(rsaDes))
            {
                // 解密DES密钥和初始化向量
                RSACrypto RC = new RSACrypto();

                string des = RC.RSADecrypt(privateKey, rsaDes);

                string[] desArray = FunctionHelper.SplitArray(des, '§');

                desKey = desArray[0];
                desIV = desArray[1];


                // DES解密内容
                DESCrypto DC = new DESCrypto();
                strResult = DC.DecryptString(Content, desKey, desIV);
            }
            else
            {
                desKey = "";
                desIV = "";
                strResult = Content;
            }


            return strResult;
        }