/// <summary>
        /// OriginPath -> SavePath With IsImage?
        /// </summary>
        /// <param name="savePath"></param>
        /// <param name="originPath"></param>
        /// <param name="isImage"></param>
        /// <param name="keyvi"></param>
        /// <returns></returns>
        private static bool EncryptFileFormPath(string savePath, string originPath, bool isImage, string keyvi)
        {
            #region OriginPath -> SavePath With IsImage?

            if (savePath.IsNullOrEmptyOrSpace() || originPath.IsNullOrEmptyOrSpace())
            {
                return(false);
            }
            // Creat -> FileInfo
            var fileInfo = new System.IO.FileInfo(originPath);
            // Creat -> Key && IV
            var enckey = EnDecryptHelper.StringMd5ShaToString(false,
                                                              string.Format("<{0}/>{1}</{2}>", ShareModel.Companyname,
                                                                            keyvi.IsNullOrEmptyOrSpace()
                                                                                ? System.IO.Path
                                                                            .GetFileNameWithoutExtension(
                                                                                fileInfo.FullName)
                                                                                : keyvi, ShareModel.Companyname), 16, false, 1,
                                                              System.Text.Encoding.UTF8);
            if (enckey.IsNullOrEmptyOrSpace())
            {
                return(false);
            }
            var enciv = EnDecryptHelper.StringMd5ShaToString(false,
                                                             string.Format("[{0}/]{1}[/{2}]", ShareModel.Companyname,
                                                                           keyvi.IsNullOrEmptyOrSpace()
                                                                               ? System.IO.Path
                                                                           .GetFileNameWithoutExtension(
                                                                               fileInfo.FullName)
                                                                               : keyvi, ShareModel.Companyname), 16, false, 1,
                                                             System.Text.Encoding.UTF8);
            if (enciv.IsNullOrEmptyOrSpace())
            {
                return(false);
            }
            // Origin -> Encrypt
            var decresult = isImage
                                ? EnDecryptHelper.ByteAesToByte(false, System.IO.File.ReadAllBytes(fileInfo.FullName),
                                                                enckey,
                                                                enciv)
                                : EnDecryptHelper.StringAesEncToByte(System.IO.File.ReadAllText(fileInfo.FullName),
                                                                     enckey,
                                                                     enciv);
            if (decresult.IsEmptyBytes())
            {
                return(false);
            }
            // Encrypt -> SaveFile
            try
            {
                System.IO.File.WriteAllBytes(savePath, decresult);
            }
            catch
            {
                return(false);
            }
            return(true);

            #endregion
        }
        /// <summary>
        /// String -> Encrypt To File
        /// </summary>
        /// <param name="savePath"></param>
        /// <param name="byEnString"></param>
        /// <param name="key"></param>
        /// <param name="vi"></param>
        /// <returns></returns>
        public static bool EncryptFileFromString(string savePath, string byEnString, string key, string vi)
        {
            #region String -> Encrypt To File

            if (savePath.IsNullOrEmptyOrSpace())
            {
                return(false);
            }
            if (byEnString.IsNullOrEmptyOrSpace())
            {
                return(false);
            }
            if (key.IsNullOrEmptyOrSpace())
            {
                return(false);
            }
            if (vi.IsNullOrEmptyOrSpace())
            {
                return(false);
            }

            key = EnDecryptHelper.StringMd5ShaToString(false,
                                                       string.Format("<{0}/>{1}</{2}>", ShareModel.Companyname, key, ShareModel.Companyname),
                                                       16, false, 1, System.Text.Encoding.UTF8);
            vi = EnDecryptHelper.StringMd5ShaToString(false,
                                                      string.Format("[{0}/]{1}[/{2}]", ShareModel.Companyname, vi, ShareModel.Companyname), 16,
                                                      false, 1, System.Text.Encoding.UTF8);
            if (key.IsNullOrEmptyOrSpace())
            {
                return(false);
            }
            if (vi.IsNullOrEmptyOrSpace())
            {
                return(false);
            }

            var encryptedstr = EnDecryptHelper.StringAesToString(false, byEnString, key, vi);
            if (encryptedstr.IsNullOrEmptyOrSpace())
            {
                return(false);
            }

            // Encrypt -> SaveFile
            try
            {
                System.IO.File.WriteAllText(savePath, encryptedstr, System.Text.Encoding.UTF8);
            }
            catch
            {
                return(false);
            }
            return(true);

            #endregion
        }
        /// <summary>
        /// ImagePath -> Decrypt To Image
        /// </summary>
        /// <param name="imagePath"></param>
        /// <returns></returns>
        public static System.Drawing.Image DecryptImageFormFilePath(string imagePath)
        {
            #region ImagePath -> Decrypt To Image

            // Creat -> FileInfo
            var fileInfo = new System.IO.FileInfo(imagePath);
            // Creat -> Key && IV
            var enckey = EnDecryptHelper.StringMd5ShaToString(false,
                                                              string.Format("<{0}/>{1}</{2}>", ShareModel.Companyname,
                                                                            System.IO.Path.GetFileNameWithoutExtension(
                                                                                fileInfo.FullName), ShareModel.Companyname), 16,
                                                              false, 1,
                                                              System.Text.Encoding.UTF8);
            var enciv = EnDecryptHelper.StringMd5ShaToString(false,
                                                             string.Format("[{0}/]{1}[/{2}]", ShareModel.Companyname,
                                                                           System.IO.Path.GetFileNameWithoutExtension(
                                                                               fileInfo.FullName), ShareModel.Companyname), 16,
                                                             false, 1,
                                                             System.Text.Encoding.UTF8);
            // Encrypt -> Decrypt
            System.Drawing.Image img = null;
            try
            {
                var imgByte = EnDecryptHelper.ByteAesToByte(true, System.IO.File.ReadAllBytes(imagePath), enckey, enciv);
                using (var ms = new System.IO.MemoryStream(imgByte))
                {
                    ms.Position = 0;
                    img         = System.Drawing.Image.FromStream(ms);
                }
            }
            catch
            {
                try
                {
                    var imgTemp = System.Drawing.Image.FromFile(imagePath);
                    img = new System.Drawing.Bitmap(imgTemp);
                    imgTemp.Dispose();
                }
                catch
                {
                    return(img);
                }
            }
            return(img);

            #endregion
        }
        /// <summary>
        /// XmlPath -> Decrypt To String
        /// </summary>
        /// <param name="xmlPath"></param>
        /// <returns></returns>
        public static string DecryptXmlFromFilePath(string xmlPath)
        {
            #region XmlPath -> Decrypt To String

            // Creat -> FileInfo
            var fileInfo = new System.IO.FileInfo(xmlPath);
            // Creat -> Key && IV
            var enckey = EnDecryptHelper.StringMd5ShaToString(false,
                                                              string.Format("<{0}/>{1}</{2}>", ShareModel.Companyname,
                                                                            System.IO.Path.GetFileNameWithoutExtension(
                                                                                fileInfo.FullName), ShareModel.Companyname), 16,
                                                              false, 1,
                                                              System.Text.Encoding.UTF8);
            var enciv = EnDecryptHelper.StringMd5ShaToString(false,
                                                             string.Format("[{0}/]{1}[/{2}]", ShareModel.Companyname,
                                                                           System.IO.Path.GetFileNameWithoutExtension(
                                                                               fileInfo.FullName), ShareModel.Companyname), 16,
                                                             false, 1,
                                                             System.Text.Encoding.UTF8);
            // Encrypt -> Decrypt
            string decresult;
            try
            {
                decresult = EnDecryptHelper.ByteAesDecToString(System.IO.File.ReadAllBytes(xmlPath), enckey, enciv);
                if (string.IsNullOrEmpty(decresult))
                {
                    decresult = System.IO.File.ReadAllText(xmlPath);
                }
            }
            catch
            {
                try
                {
                    decresult = System.IO.File.ReadAllText(xmlPath);
                }
                catch
                {
                    return(null);
                }
            }
            return(string.IsNullOrEmpty(decresult) ? null : decresult);

            #endregion
        }
        /// <summary>
        /// String -> Decrypt To String
        /// </summary>
        /// <param name="encryptstr"></param>
        /// <param name="key"></param>
        /// <param name="vi"></param>
        /// <returns></returns>
        public static string DecryptStringFromString(string encryptstr, string key, string vi)
        {
            #region String -> Decrypt To String
            if (encryptstr.IsNullOrEmptyOrSpace())
            {
                return(null);
            }
            if (key.IsNullOrEmptyOrSpace())
            {
                return(null);
            }
            if (vi.IsNullOrEmptyOrSpace())
            {
                return(null);
            }

            key = EnDecryptHelper.StringMd5ShaToString(false,
                                                       string.Format("<{0}/>{1}</{2}>", ShareModel.Companyname, key, ShareModel.Companyname),
                                                       16, false, 1, System.Text.Encoding.UTF8);
            vi = EnDecryptHelper.StringMd5ShaToString(false,
                                                      string.Format("[{0}/]{1}[/{2}]", ShareModel.Companyname, vi, ShareModel.Companyname), 16,
                                                      false, 1, System.Text.Encoding.UTF8);
            if (key.IsNullOrEmptyOrSpace())
            {
                return(null);
            }
            if (vi.IsNullOrEmptyOrSpace())
            {
                return(null);
            }

            string encryptedstr;
            try
            {
                encryptedstr = EnDecryptHelper.StringAesToString(true, encryptstr, key, vi);
            }
            catch
            {
                encryptedstr = encryptstr;
            }
            return(encryptedstr.ToSafeValue());

            #endregion
        }