/// <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); }
/// <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="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); } }