private async Task ChangeEncoding(string filePath, string fileOutputPath, EncodingTypes fromEncoding, EncodingTypes toEncoding)
        {
            filePath       = FormatPath(filePath);
            fileOutputPath = FormatPath(fileOutputPath);
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var arabic = Encoding.GetEncoding(1256);

            string contents = await File.ReadAllTextAsync(filePath, arabic);

            if (string.IsNullOrEmpty(contents))
            {
                await Task.CompletedTask;
                return;
            }

            var utf8 = UTF8Encoding.GetEncoding(65001);

            var fileOutputDirectory = new DirectoryInfo(fileOutputPath).Parent.FullName.ToString();

            if (!isDirectoryExist(fileOutputDirectory))
            {
                Directory.CreateDirectory(fileOutputDirectory);
            }

            await File.WriteAllTextAsync(fileOutputPath, contents, utf8);
        }
        public static CalculationResult StartCalculations(string input, MonoAlphabet alpha,
                                                          EncoderType encoderType, CodingType codingType, out IMonoAlphabet monoAlphabet)
        {
            var result = Empty;

            var alphabetInfo = "";

            if (alpha == MonoAlphabet.Auto)
            {
                var autoDetected = Alphabet.DetectMonoFromString(input);
                alphabetInfo = $"За вхідним повідомленням визначено алфавіт: " +
                               $"{MonoAlphabets.GetName(autoDetected.Item2)}";
                monoAlphabet = autoDetected.Item1;
            }
            else
            {
                alphabetInfo = $"Задано алфавіт: {MonoAlphabets.GetName(alpha)}";
                monoAlphabet = Alphabet.GetMono(alpha);
            }

            result.CalculationsPipeline.AddRange(new string[]
            {
                "  --  ",
                "Початок обчислень...",
                $"Тип шифрування: {EncodingTypes.GetName(encoderType)}",
                $"Тип операції: {CodingTypes.GetName(codingType)}",
                alphabetInfo,
                $"Повідомлення: {input}"
            });

            return(result);
        }
        private void comboBoxEncoding_SelectedIndexChanged(object sender, EventArgs e)
        {
            lbNameEncoder.Text = $"Шифр : {(string)comboBoxEncoding.SelectedItem}";

            QuestionByTestingHolder.UpdateResult();
            _guid = Guid.NewGuid();
            FileStream fs = null;

            EncoderType enc  = EncodingTypes.GetEncodingType(comboBoxEncoding.SelectedItem.ToString());
            string      path = $"Theory/{enc.ToString()}.txt";

            if (File.Exists(path))
            {
                fs = new FileStream(path, FileMode.Open);

                using (StreamReader sr = new StreamReader(fs))
                {
                    tbTheory.Text = sr.ReadToEnd();
                }
            }

            Control cntrl = (enc == EncoderType.DiffiHelman ||
                             (enc == EncoderType.SHA1) ||
                             (enc == EncoderType.MD5)) ? new BaseEncodeControl(this, enc)
                : (Control) new DecodeEncodeControl(enc);


            SelectEncodingControl(cntrl);
            GetAnotherTest();
        }
 public DecodeEncodeControl(EncoderType type)
 {
     InitializeComponent();
     _type          = type;
     nameLabel.Text = EncodingTypes.GetName(type);
     InitEnconding();
 }
Esempio n. 5
0
 public BaseEncodeControl(EncodersForm encodersForm, EncoderType type)
 {
     InitializeComponent();
     _type          = type;
     nameLabel.Text = EncodingTypes.GetName(type);
     _encodersForm  = encodersForm;
     LoadEncoding();
 }
        public EncodersCalculatorForm()
        {
            InitializeComponent();

            FormClosing += SwitсhToMain;
            comboBox1.Items.AddRange(EncodingTypes.GetAllNames());
            comboBox1.SelectedIndex = 0;
        }
Esempio n. 7
0
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="typeOfEncoding">Specify type of encoding</param>

        #region G9Encoding

        public G9Encoding(EncodingTypes typeOfEncoding)
        {
#if NETSTANDARD2_1 || NETCOREAPP3_0 || NETCOREAPP3_1
            EncodingType = typeOfEncoding switch
            {
                EncodingTypes.ASCII => Encoding.ASCII,
                EncodingTypes.BigEndianUnicode => Encoding.BigEndianUnicode,
                EncodingTypes.Default => Encoding.Default,
                EncodingTypes.UTF_32 => Encoding.UTF32,
                EncodingTypes.UTF_7 => Encoding.UTF7,
                EncodingTypes.UTF_8 => Encoding.UTF8,
                EncodingTypes.Unicode => Encoding.Unicode,
                _ => throw new InvalidEnumArgumentException(nameof(EncodingType), (byte)typeOfEncoding,
                                                            typeof(EncodingTypes))
            };
#else
            switch (typeOfEncoding)
            {
            case EncodingTypes.ASCII:
                EncodingType = Encoding.ASCII;
                break;

            case EncodingTypes.BigEndianUnicode:
                EncodingType = Encoding.BigEndianUnicode;
                break;

#if NETSTANDARD2_0
            case EncodingTypes.Default:
                EncodingType = Encoding.Default;
                break;
#endif
            case EncodingTypes.UTF_32:
                EncodingType = Encoding.UTF32;
                break;

            case EncodingTypes.UTF_7:
                EncodingType = Encoding.UTF7;
                break;

            case EncodingTypes.UTF_8:
                EncodingType = Encoding.UTF8;
                break;

            case EncodingTypes.Unicode:
                EncodingType = Encoding.Unicode;
                break;

            default:
                throw new InvalidEnumArgumentException(nameof(EncodingType), (byte)typeOfEncoding,
                                                       typeof(EncodingTypes));
            }
#endif
        }
Esempio n. 8
0
        /// <summary>
        /// 解密字符串
        /// </summary>
        /// <param name="s"></param>
        /// <param name="key"></param>
        /// <param name="encodingType"></param>
        /// <returns></returns>
        public static string Decrypt(String s, String key, EncodingTypes encodingType = EncodingTypes.Base64)
        {
            byte[] cipherText = null;
            switch (encodingType)
            {
            case EncodingTypes.Base64:
                cipherText = Convert.FromBase64String(s);
                break;

            case EncodingTypes.Base58:
                cipherText = Base58Encoding.Decode(s);
                break;
            }

            return(DecryptStringFromBytes(cipherText, key));
        }
Esempio n. 9
0
        private static Encoding getEncodingTypes(EncodingTypes encodingTypes)
        {
            switch (encodingTypes)
            {
            case EncodingTypes.UTF32:
                return(new UTF32Encoding());

            case EncodingTypes.UTF8:
                return(new UTF8Encoding());

            case EncodingTypes.ASCII:
                return(new ASCIIEncoding());

            default:
                return(new UTF32Encoding());
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 加密字符串,结果是使用base64编码过的
        /// </summary>
        /// <param name="plainText"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        public static String Encrypt(String plainText, String key, EncodingTypes encodingType = EncodingTypes.Base64)
        {
            var result = string.Empty;
            var bytes  = EncryptStringToBytes(plainText, key);

            switch (encodingType)
            {
            case EncodingTypes.Base64:
                result = Convert.ToBase64String(bytes);
                break;

            case EncodingTypes.Base58:
                result = Base58Encoding.Encode(bytes);
                break;
            }

            return(result);
        }
        private void ChangeEncoder()
        {
            panel2.Controls.Clear();
            UserControl cntrl = null;
            var         type  = EncodingTypes.GetEncodingType(comboBox1.Text);

            switch (type)
            {
            case EncoderType.Caesar:
                cntrl = new CaesarCalculatorControl();
                break;

            case EncoderType.Trithemius:
                cntrl = new TrithemiusCalculatorControl();
                break;
            }

            var baseCntrl = new BaseCalculatorControl(cntrl, this, type);

            baseCntrl.panel1.Controls.Add(cntrl);

            panel2.Controls.Add(baseCntrl);
        }
        public void GetAnotherTest()
        {
            EncoderType enc = EncodingTypes.GetEncodingType(comboBoxEncoding.SelectedItem.ToString());

            _currentquestionByTesting = QuestionByTestingHolder.GetQuestionByTestings(enc)
                                        .FirstOrDefault(p => p.AnswerType == AnswerType.Defoult);

            //if (_currentquestionByTesting == null)
            //{
            //    return;
            //}

            if (_testingCach != null)
            {
                tabPage3.Controls.Clear();
                tabPage3.Controls.Add(_testingCach);
            }
            if (_currentquestionByTesting == null)
            {
                return;
            }

            lbDescription.Text = _currentquestionByTesting.Description;

            _testingCount = QuestionByTestingHolder.GetQuestionByTestings(enc).Count;

            lbAllQuestions.Text = _testingCount.ToString();
            _currentTask        = 0;
            lbCurrentTask.Text  = _currentTask.ToString();
            cLB.Items.Clear();

            foreach (var s in _currentquestionByTesting.Questions)
            {
                cLB.Items.Add($"{s.Key}-{s.Value}");
            }
        }
Esempio n. 13
0
 /// <summary>
 /// 解密数据
 /// </summary>
 /// <param name="data"></param>
 /// <param name="encryptKey"></param>
 /// <param name="encodingType"></param>
 /// <returns></returns>
 public static string Decrypt(string data, string encryptKey, EncodingTypes encodingType = EncodingTypes.Base64)
 {
     return(AES.Decrypt(data, encryptKey, encodingType));
 }
 /// <summary>
 /// Initializes a new instance of the StringEncodingAttribute class.
 /// </summary>
 /// <param name="encodingType">Specify encoding type.</param>
 public StringEncodingAttribute(EncodingTypes encodingType)
 {
     this.encodingType = encodingType;
 }
 private void Init()
 {
     comboBoxEncoding.Items.AddRange(EncodingTypes.GetAllNames().ToArray());
     comboBoxEncoding.SelectedItem = comboBoxEncoding.Items[0];
 }
        public async Task TranslateTo(bool justTranslateRootFolder,
                                      EncodingTypes fromEncoding,
                                      EncodingTypes toEncoding,
                                      IncludingBehavior includeFileToProcessBehavior,
                                      IncludingBehavior includeFolderToProcessBehavior)
        {
            var filePaths = new List <string>();

            if (justTranslateRootFolder)
            {
                filePaths = Directory.GetFiles(
                    targetFolder,
                    "*.*",
                    SearchOption.TopDirectoryOnly)
                            ?.ToList();
            }
            else
            {
                filePaths = Directory.GetFiles(
                    targetFolder,
                    "*.*",
                    SearchOption.AllDirectories)
                            ?.ToList();
            }

            if (filePaths.Count == 0)
            {
                MessageBox.Show("فایلی پیدا نشد");
                await Task.CompletedTask;
            }
            foreach (var filePath in filePaths)
            {
                var relativePathToTargetRootPath = filePath.Remove(0, targetFolder.Length);
                var fileOutputPath  = outputPath + "\\" + relativePathToTargetRootPath;
                var parentDirectory = new FileInfo(fileOutputPath).Directory.Parent.Name;

                var fileInfo      = new FileInfo(filePath);
                var directoryInfo = new FileInfo(fileInfo.Directory.FullName);

                if (includeFolderToProcessBehavior == IncludingBehavior.UseExcludeList)
                {
                    if (excludedFolderNames.Count != 0)
                    {
                        if (excludedFolderNames.Any(o => o == directoryInfo.Name))
                        {
                            continue;
                        }
                    }
                }

                if (includeFolderToProcessBehavior == IncludingBehavior.UseIncludeList)
                {
                    if (includedFolderNames.Count != 0)
                    {
                        if (!includedFolderNames.Any(o => o == directoryInfo.Name))
                        {
                            continue;
                        }
                    }
                }

                if (includeFileToProcessBehavior == IncludingBehavior.UseExcludeList)
                {
                    if (excludedFileExtensions.Count != 0)
                    {
                        if (excludedFileExtensions.Any(o => o == fileInfo.Extension))
                        {
                            continue;
                        }
                    }
                }

                if (includeFileToProcessBehavior == IncludingBehavior.UseIncludeList)
                {
                    if (includedFileExtensions.Count != 0)
                    {
                        if (!includedFileExtensions.Any(o => o == fileInfo.Extension))
                        {
                            continue;
                        }
                    }
                }

                if (!fileInfo.Exists)
                {
                    throw new Exception("فایل " + filePath + " پیدا نشد");
                }


                await ChangeEncoding(filePath, fileOutputPath, fromEncoding, toEncoding);
            }
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
            if (_currentquestionByTesting == null)
            {
                return;
            }

            string answer = (string)cLB.SelectedItem;

            if (answer == null)
            {
                return;
            }

            if (answer != null)
            {
                string[] splitAnswe = answer.Split('-');
                int      index      = int.Parse(splitAnswe[0]);

                if (index == _currentquestionByTesting.Answer)
                {
                    _currentquestionByTesting.AnswerType = AnswerType.Correct;
                }
                else
                {
                    _currentquestionByTesting.AnswerType = AnswerType.NotCorrect;
                }
            }

            _historyPresentation.AddHistory(new RequestHistory()
            {
                CodingType    = CodingType.Test,
                Question      = _currentquestionByTesting.Description,
                Answer        = answer,
                CorrectAnswer = _currentquestionByTesting.Questions
                                .FirstOrDefault(p => p.Key == _currentquestionByTesting.Answer).Value,
                GuidId = _guid,
                Mark   = _currentquestionByTesting.AnswerType == AnswerType.Correct ? 1 : 0,
                Name   = (string)comboBoxEncoding.SelectedItem
            });

            var enc     = EncodingTypes.GetEncodingType(comboBoxEncoding.SelectedItem.ToString());
            var correct = QuestionByTestingHolder.GetQuestionByTestings(enc)
                          .Count(p => p.AnswerType == AnswerType.Correct);

            lbCorrectAnswer.Text = correct.ToString();

            _currentquestionByTesting = QuestionByTestingHolder.GetQuestionByTestings(enc)
                                        .FirstOrDefault(p => p.AnswerType == AnswerType.Defoult);

            if (_currentquestionByTesting == null)
            {
                _testingCach         = panel2;
                lbCorrectAnswer.Text = "0";
                tabPage3.Controls.Clear();
                var testingCntrl = new TestingResultControl(correct, _testingCount, this);
                tabPage3.Controls.Add(testingCntrl);

                // Resize
                var cntrlResize = new ControlWithResizes
                {
                    Control = testingCntrl,
                    Resizes =
                    {
                        SetLocationCentredToParrent,
                        cntrl => SetYIndentToForm(this,cntrl, 0.07)
                    }
                };
                _controlsWithResizes.Add(cntrlResize);

                cntrlResize.Resize();

                _currentTask = 0;
                _currentquestionByTesting = null;
                QuestionByTestingHolder.UpdateResult();
                return;
            }

            _currentTask++;
            lbCurrentTask.Text = _currentTask.ToString();
            lbDescription.Text = _currentquestionByTesting.Description;
            cLB.Items.Clear();

            foreach (var s in _currentquestionByTesting.Questions)
            {
                cLB.Items.Add($"{s.Key}-{s.Value}");
            }
        }
Esempio n. 18
0
 /// <summary>
 /// 恢复数据
 /// </summary>
 /// <param name="data"></param>
 /// <param name="protectKey"></param>
 /// <param name="encodingType"></param>
 /// <returns></returns>
 static public String UnProtect(String data, string protectKey, EncodingTypes encodingType = EncodingTypes.Base64)
 {
     return(AES.Decrypt(data, protectKey, encodingType));
 }
 private void SetEncoding(CtfPropertyBag bag)
 {
     this.Encoding = GetEncoding(bag);
 }
Esempio n. 20
0
 public static string Hash(String inputText, HashingTypes hashingType, EncodingTypes encodingTypes, StringFormats resultFormat)
 {
     return(ComputeHash(inputText, hashingType, encodingTypes, resultFormat));
 }
Esempio n. 21
0
 public static string Hash(String inputText, HashingTypes hashingType, EncodingTypes encodingTypes)
 {
     return(ComputeHash(inputText, hashingType, encodingTypes, StringFormats.BASE64));
 }
Esempio n. 22
0
        /// <summary>
        ///		computes the hash code and converts it to string
        /// </summary>
        /// <param name="inputText">input text to be hashed</param>
        /// <param name="hashingType">type of hashing to use</param>
        /// <returns>hashed string</returns>
        private static string ComputeHash(string inputText, HashingTypes hashingType, EncodingTypes encodingTypes, StringFormats resultFormat)
        {
            HashAlgorithm HA          = getHashAlgorithm(hashingType);
            Encoding      textEncoder = getEncodingTypes(encodingTypes);

            //get byte representation of input text
            byte[] inputBytes = textEncoder.GetBytes(inputText);


            //hash the input byte array
            byte[] output = HA.ComputeHash(inputBytes);

            //convert output byte array to a string
            return(ConvertString(output, resultFormat));
        }
Esempio n. 23
0
 private void ParseBody(HttpListenerRequest req)
 {
     if (ContentType == null) {
         return;
     } else if (ContentType.StartsWith(@"multipart/form-data")) {
         EncodingType = EncodingTypes.MULTIPART_FORMDATA;
         String boundary = ContentType.Split(new String[] { " boundary=" }, StringSplitOptions.None).Last();
         byte[] boundaryByteArray = System.Text.Encoding.UTF8.GetBytes("--" + boundary);
         byte[] requestData = null;
         using (BinaryReader br = new BinaryReader(req.InputStream)) {
             const int bufferSize = 4096;
             using (var ms = new MemoryStream()) {
                 byte[] buffer = new byte[bufferSize];
                 int count;
                 while ((count = br.Read(buffer, 0, buffer.Length)) != 0) {
                     ms.Write(buffer, 0, count);
                 }
                 requestData = ms.ToArray();
             }
         }
         RequestData = requestData;
         ParseMultipartBody(boundaryByteArray, RequestData);
     } else if (ContentType.StartsWith(@"text/plain")) {
         EncodingType = EncodingTypes.TEXT_PLAIN;
         using (StreamReader sr = new StreamReader(req.InputStream)) {
             RequestBody = sr.ReadToEnd();
         }
         FormCollection = System.Web.HttpUtility.ParseQueryString(RequestBody);
     } else if (ContentType.StartsWith(@"application/x-www-form-urlencoded")) {
         EncodingType = EncodingTypes.APPLICATION_X_WWW_FORM_URLENCODED;
         using (StreamReader sr = new StreamReader(req.InputStream)) {
             RequestBody = sr.ReadToEnd();
         }
         FormCollection = System.Web.HttpUtility.ParseQueryString(RequestBody);
     } else {
         throw new Exception("Unknown type " + ContentType);
     }
 }
 /// <summary>
 /// Initializes a new instance of the StringEncodingAttribute class.
 /// </summary>
 /// <param name="encodingType">Specify encoding type.</param>
 public StringEncodingAttribute(EncodingTypes encodingType)
 {
     this.encodingType = encodingType;
 }