// WIN [ public IEnumerator CheckForComplete() { yield return(null); while (Complete == false) { // iterate over all the tiles and check if they are in the correct position. Complete = true; for (int j = Height - 1; j >= 0; j--) { for (int i = 0; i < Width; i++) { // check if this tile has the correct grid display location. if (TileDisplayArray[i, j].GetComponent <ST_PuzzleTile>().CorrectLocation == false) { Complete = false; } } } yield return(null); } // if we are still complete then all the tiles are correct. if (Complete) { GameTimerUpdater.StopTimer(); string msg = Steganography.Decode(PuzzleImage); var scoreTemp = CalculateScore(PuzzleMoves, (int)GameTimerUpdater.ElapsedSeconds); WaitingValidationPopup.gameObject.SetActive(true); PuzzleManager.ValidatePuzzleResult(PuzzleManager.PuzzleData.puzzleId, scoreTemp, msg, Moves, (isValid) => { if (isValid) { if (AudioSource == null) { AudioSource = GetComponent <AudioSource>(); } AudioSource.PlayOneShot(VictorySound); var score = CalculateScore(PuzzleMoves, (int)GameTimerUpdater.ElapsedSeconds); CompletingText.text = "Nicely done! You scored " + score + "!\nBe sure to accept the transaction, or your score will not be added in the leaderboard!"; WaitingValidationPopup.gameObject.SetActive(false); CompletingPopup.gameObject.SetActive(true); } else { CompletingText.text = "Uhm, it seems you did not decrypted correctly this hash. But you can retry!"; CompletingPopup.gameObject.SetActive(true); } }); } yield return(null); }
private void InitializeTextures(ref Texture2D image) { image = Steganography.Encode(image, "1234"); }
public IHttpActionResult GetFeedPath(string token, string tokenSecret, double latitude, double longitude, string screenname) { var settingsReader = new AppSettingsReader(); var consumerKey = settingsReader.GetValue("TwitterKey", typeof(string)).ToString(); var consumerSecret = settingsReader.GetValue("TwitterSecret", typeof(string)).ToString(); var service = new TwitterService(consumerKey, consumerSecret); service.AuthenticateWith(token, tokenSecret); var response = service.ListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { ScreenName = screenname, Count = 5 }) ?? new List <TwitterStatus>(); var statuses = new List <Tweets>(); foreach (var twitterStatus in response) { if (twitterStatus.Entities == null) { continue; } var urls = twitterStatus.Entities.Media.Select(rawLinks => rawLinks.MediaUrl).ToList(); var encrypted = false; foreach (var media in twitterStatus.Entities.Media) { if (media.MediaType != TwitterMediaType.Photo) { continue; } using (var client = new WebClient()) { var image = client.DownloadData(media.MediaUrl); var ms = new MemoryStream(image); var bmp = new Bitmap(Image.FromStream(ms)); var extracted = Steganography.Extract(bmp); var decryptedMessage = Encryption.Decrypt(extracted); if (string.IsNullOrEmpty(decryptedMessage)) { continue; } var embedded = new JavaScriptSerializer().Deserialize <EmbeddedDetails>(decryptedMessage); var currentLocation = new GeoCoordinate { Latitude = latitude, Longitude = longitude }; var requiredLocation = new GeoCoordinate { Latitude = embedded.Latitude, Longitude = embedded.Longitude }; if (!GeoLocation.WithinRadius(currentLocation, requiredLocation)) { continue; } embedded.FinalMystery = null; encrypted = true; statuses.Add(new Tweets { Text = twitterStatus.Text, ScreenName = twitterStatus.User.ScreenName, Name = twitterStatus.User.Name, MediaUrls = urls, ProfileImageUrl = twitterStatus.User.ProfileImageUrl, DecryptedMessage = embedded }); } } if (!encrypted) { statuses.Add(new Tweets { Text = twitterStatus.Text, ScreenName = twitterStatus.User.ScreenName, Name = twitterStatus.User.Name, MediaUrls = urls, ProfileImageUrl = twitterStatus.User.ProfileImageUrl }); } } return(Ok(statuses)); }
const string SOURCE5 = "VIGENERE";//"ATTACKATDAWN"; static void Main(string[] args) { string res;/* #region Метод "Железнодорожной изгороди" * Console.WriteLine("Метод \"Железнодорожной изгороди\":"); * Console.WriteLine("Первичная информация: {0}", SOURCE1); * res = EncryptSymmetric.ZigZagCipher(SOURCE1, KEY1); * Console.WriteLine("После шифрования: {0}", res); * res = EncryptSymmetric.ZigZagDeCipher(res, KEY1); * Console.WriteLine("После дешифровки: {0}\n", res); #endregion * #region "Столбцовый метод" * Console.WriteLine("\"Столбцовый\" метод:"); * Console.WriteLine("Первичная информация: {0}", SOURCE1); * res = EncryptSymmetric.ColumnCipher(SOURCE1, KEY2); * Console.WriteLine("После шифрования: {0}", res); * res = EncryptSymmetric.ColumnDeCipher(res, KEY2); * Console.WriteLine("После дешифровки: {0}\n", res); #endregion * #region Шифр Цезаря * Console.WriteLine("Шифр Цезаря:"); * Console.WriteLine("Первичная информация: {0}", SOURCE2); * res = EncryptSymmetric.CaesarCipher(SOURCE2, KEY3, AlphabetForEncryption.Latin); * Console.WriteLine("После шифрования: {0}", res); * res = EncryptSymmetric.CaesarDeCipher(res, KEY3, AlphabetForEncryption.Latin); * Console.WriteLine("После дешифровки: {0}\n", res); #endregion * #region Метод "поворотной решетки" * Console.WriteLine("Метод \"Поворотной решетки\":"); * Console.WriteLine("Первичная информация: {0}", SOURCE3); * byte[,] grid = { { 0, 0, 0, 1 }, * { 1, 0, 0, 0 }, * { 0, 0, 1, 0 }, * { 0, 0, 1, 0 } }; * res = EncryptSymmetric.TurnedGridCipher(SOURCE3, grid, KEY4); * Console.WriteLine("После шифрования: {0}", res); * res = EncryptSymmetric.TurnedGridDeCipher(res, grid, KEY4); * Console.WriteLine("После дешифровки: {0}\n", res); #endregion * * Console.WriteLine("Шифр Плейфера:"); * Console.WriteLine("Первичная информация: {0}", SOURCE4); * res = EncryptSymmetric.PlayfairCipher(SOURCE4, KEY5); * Console.WriteLine("После шифрования: {0}", res); * res = EncryptSymmetric.PlayfairDeCipher(res, KEY5); * Console.WriteLine("После дешифровки: {0}\n", res); * * Console.WriteLine("Шифр Виженера:"); * Console.WriteLine("Первичная информация: {0}", SOURCE5); * res = EncryptSymmetric.VigenereCipher(SOURCE5, KEY6); * Console.WriteLine("После шифрования: {0}", res); * res = EncryptSymmetric.VigenereDeCipher(res, KEY6); * Console.WriteLine("После дешифровки: {0}\n", res); */ DateTime time = DateTime.Now; TimeSpan per = DateTime.Now - time; //string str = "My string for Dogs"; //for (int i = 0; i < 5; i++) // str += str; string str = "нпло" + Environment.NewLine + "sdada"; time = DateTime.Now; str = "abc234 df asdgыут м№!#$!%^ji opafn auv asdfasf sdf ;nsfgai bgfsfh ahfaasdfajlsdf asdf afgvsknqygwelo 348y [unfajo grbh@ 9тцнфc"; FileStream fs = new FileStream(@"../../files/warandpeace.txt", FileMode.Open); byte[] strb = new byte[fs.Length]; fs.Read(strb, 0, (int)fs.Length); byte[] strbz = Steganography.ZipBytes(strb); fs.Close(); Steganography.HideBytesInBMP(strbz, @"../../files/sample.bmp"); Console.WriteLine(strbz.Length); strbz = Steganography.TakesBytesFromBMP(@"../../files/sample.bmp"); Console.WriteLine(strbz.Length); strb = Steganography.UnZipBytes(strbz); fs = new FileStream(@"../../files/warandpeace1.txt", FileMode.Create); fs.Write(strb, 0, strb.Length); fs.Close(); per = DateTime.Now - time; Console.WriteLine("Estimate time(steg): {0}", per); Console.ReadKey(); }
public IHttpActionResult GuessAnswer(GuessAnswer guessAnswer) { var settingsReader = new AppSettingsReader(); var consumerKey = settingsReader.GetValue("TwitterKey", typeof(string)).ToString(); var consumerSecret = settingsReader.GetValue("TwitterSecret", typeof(string)).ToString(); var service = new TwitterService(consumerKey, consumerSecret); service.AuthenticateWith(guessAnswer.Token, guessAnswer.TokenSecret); var response = service.ListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { ScreenName = guessAnswer.Screenname }) ?? new List <TwitterStatus>(); var statuses = new List <Tweets>(); var missionName = string.Empty; var result = false; foreach (var twitterStatus in response) { if (twitterStatus.Entities == null) { continue; } var urls = twitterStatus.Entities.Media.Select(rawLinks => rawLinks.MediaUrl).ToList(); foreach (var media in twitterStatus.Entities.Media) { if (media.MediaType != TwitterMediaType.Photo) { continue; } using (var client = new WebClient()) { var image = client.DownloadData(media.MediaUrl); var ms = new MemoryStream(image); var bmp = new Bitmap(Image.FromStream(ms)); var extracted = Steganography.Extract(bmp); var decryptedMessage = Encryption.Decrypt(extracted); if (string.IsNullOrEmpty(decryptedMessage)) { continue; } var embedded = new JavaScriptSerializer().Deserialize <EmbeddedDetails>(decryptedMessage); if (embedded.FinalMystery != null) { if (embedded.FinalMystery.ToLower().Equals(guessAnswer.Guess.ToLower())) { result = true; missionName = embedded.Mystery; } } } } } if (result) { service.AuthenticateWith(guessAnswer.Token, guessAnswer.TokenSecret); service.SendTweet(new SendTweetOptions { Status = $"{guessAnswer.Screenname} mission '{missionName}' accomplished!", }); return(Ok(new GuessResult { message = "Congratulations! You win!" })); } return(Ok(new GuessResult { message = "Incorrect, try again." })); }