Beispiel #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>byte[]</returns>
        public byte[] DecryptBytes(string Content, string privateKey, string rsaDes, out string desKey, out string desIV)
        {
            byte[] byteResult = null;

            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();
                byteResult = DC.DecryptBytes(Content, desKey, desIV);
            }
            else
            {
                desKey = "";
                desIV  = "";

                byteResult = Convert.FromBase64String(Content);
            }


            return(byteResult);
        }
Beispiel #2
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);
        }
Beispiel #3
0
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="upfile">获取客户段上传的文件</param>
        /// <param name="limitType">允许上传的文件类型,null值为无限制</param>
        /// <param name="limitSize">上传文件的大小限制(0为无限制)</param>
        /// <param name="autoName">是否自动命名</param>
        /// <param name="savepath">上传文件的保存路径</param>
        /// <returns>string[]</returns>
        public static string[] UploadFile(HttpPostedFile upfile, string limitType, int limitSize, bool autoName, string savepath)
        {
            string[] strResult = new string[5];
            string[] extName   = null;
            if (!Object.Equals(limitType, null) || Object.Equals(limitType, ""))
            {
                extName = FunctionHelper.SplitArray(limitType, ',');
            }

            int    fileSize       = upfile.ContentLength;                                       // 上传文件大小
            string fileClientName = upfile.FileName;                                            // 在客户端的文件全路径
            string fileFullName   = Path.GetFileName(fileClientName);                           // 上传文件名(包括后缀符)

            if (fileFullName == null || fileFullName == "")
            {
                strResult[0] = "无文件";
                strResult[1] = "";
                strResult[2] = "";
                strResult[3] = "";
                strResult[4] = "<font color=red>失败</font>";
                return(strResult);
            }
            else
            {
                string   fileType       = upfile.ContentType;                                                   // 上传文件的MIME类型
                string[] array          = FunctionHelper.SplitArray(fileFullName, '.');
                string   fileExt        = array[array.Length - 1];                                              // 上传文件后缀符
                int      fileNameLength = fileFullName.Length - fileExt.Length - 1;
                string   fileName       = "";                                                                   // 上传文件名(不包括后缀符)
                if (autoName)
                {
                    fileName = "_" + StringHelper.MakeName();
                }
                else
                {
                    fileName = fileFullName.Substring(0, fileNameLength);
                }


                string savename = fileName + "." + fileExt;
                strResult[0] = fileClientName;
                strResult[1] = savename;
                strResult[2] = fileType;
                strResult[3] = fileSize.ToString();
                bool EnableUpload = false;
                if (limitSize <= fileSize && limitSize != 0)
                {
                    strResult[4] = "<font color=red>失败</font>,上传文件过大";
                    EnableUpload = false;
                }
                else if (extName != null)
                {
                    for (int i = 0; i <= extName.Length - 1; i++)
                    {
                        if (string.Compare(fileExt, extName[i].ToString(), true) == 0)
                        {
                            EnableUpload = true;
                            break;
                        }
                        else
                        {
                            strResult[4] = "<font color=red>失败</font>,文件类型不允许上传";
                            EnableUpload = false;
                        }
                    }
                }
                else
                {
                    EnableUpload = true;
                }

                // 符合上传条件,开始执行上传文件操作。
                if (EnableUpload)
                {
                    try
                    {
                        string savefile = savepath + savename;
                        FileHelper.WriteFile(savefile, "临时文件");
                        upfile.SaveAs(savefile);
                        strResult[4] = "成功";
                        //strResult[4] = "成功<!--" + FunctionHelper.GetRealPath(savepath) + savename + "-->";
                    }
                    catch (Exception exc)
                    {
                        strResult[4] = "<font color=red>失败</font><!-- " + exc.Message + " -->";
                    }
                }

                return(strResult);
            }
        }