public string Encrypt(string inputStr, bool isText) { if (_form != null) { _progress = new Utils.Progress(0, inputStr.Length, 1, "Шифрование"); _progress.Show(); } List <byte> bytes = new List <byte>(); if (isText) { bytes = Encoding.Default.GetBytes(inputStr).ToList(); } else { string[] bytesInStrings = inputStr.Split(' '); foreach (var ch in bytesInStrings) { if (ch == "" || ch == " ") { continue; } bytes.Add(Byte.Parse(ch)); } } BigInteger k = KeyGen(); BigInteger s = BigInteger.ModPow(_h, k, _q); _p = BigInteger.ModPow(_g, k, _q); List <BigInteger> encryptedMessage = new List <BigInteger>(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes.Count; ++i) { encryptedMessage.Add(s * bytes[i]); sb.Append(encryptedMessage[i].ToString() + '\n'); if (_form != null) { _progress.PerformStep(); } } if (_form != null) { _progress.CloseFormSafe(); } return(sb.ToString()); }
private string GenerateSequenceImplementation(int numbers, ref Utils.Progress progressForm) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < numbers; ++i) { sb.Append(NextBit() & 1); progressForm.PerformStep(); } progressForm.CloseFormSafe(); Utils.MultiThreadHelper.SetTextBoxSafe(sb.ToString(), ref TextBox); return(sb.ToString()); }