Ejemplo n.º 1
0
        /// <summary>
        /// Входная строка может быть как зашифрованной, так и нет.
        /// Если строка зашифрована, она расшифровывается.
        /// Иначе возвращяется исходная строка.
        /// </summary>
        /// <param name="inStr">Входная строка</param>
        /// <returns>Результат расшифровки</returns>
        public static string TryUnProtect(string inStr)
        {
            string outStr    = "";
            bool   isSuccess = DataProtect.UnProtect(inStr, out outStr);

            return(isSuccess ? outStr : inStr);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// По исходному текстовому файлу формируется новый файл, который содержит все строки старого файла в защищенном виде.
        /// </summary>
        /// <param name="path">Путь к исходному текстовому файлу</param>
        /// <param name="newFileExt">Расширение у файла с результатом. Добавляется к имени и расширению исходного файла.
        /// (т.е. у исходного файла расшинение не отбразывается)</param>
        /// <param name="isLocalMachineProtection">Уровень защиты (на уровне компьютера или на уровне пользователя)</param>
        /// <returns>Путь к файлу результата</returns>
        public static string FileProtect(string path, string newFileExt, bool isLocalMachineProtection = false)
        {
            string newPath = "";

            try
            {
                List <string> protectLines = new List <string>();
                var           lines        = File.ReadAllLines(path);

                foreach (string line in lines)
                {
                    protectLines.Add(DataProtect.Protect(line, isLocalMachineProtection));
                }

                newPath = path + (newFileExt.StartsWith('.') ? newFileExt : "." + newFileExt);
                File.WriteAllLines(newPath, protectLines);
            }
            catch (Exception ex)
            {
                throw new Exception("Ошибка при обработке файла.", ex);
            }

            return(newPath);
        }