Ejemplo n.º 1
0
    // 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);
    }
Ejemplo n.º 2
0
 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));
        }
Ejemplo n.º 4
0
        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."
            }));
        }