Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

C++

Vigenère - Zamiana tekstu w Kod

c++

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 Gość_dZIADEK.SG_*

  • Gość

Reputacja: 0

Offline

Napisano 26.06.2014 16:26

Szyfr Vigenère'a

Algorytm Vigenère'a jest jednym z klasycznych algorytmów szyfrujących. Należy on do grupy tzw. polialfabetycznych szyfrów podstawieniowych. Szyfr ten błędnie został przypisany twórcy bardziej skomplikowanego szyfru Blaise'owi de Vigenère.

Szyfr, który obecnie nazywamy szyfrem Vigenère'a po raz pierwszy został opisany przez Giovana Batista Belaso w 1553 w broszurze zatytułowanej La cifra del. Sig. Giovan Batista Belaso

 

(Wikipedia)

Kod którego nie może złamać nawet CIA



Najsłynniejszym napisem w kwaterze głównej Centralnej Agencji Wywiadowczej w Langley w stanie Wirginia, było biblijne wyrażenie wyrzeźbione na marmurowej posadzce w holu głównym: „I poznacie prawdę, a ona was wyzwoli”. Lecz w ciągu ostatnich kilkunastu lat przedmiotem intensywnych badan The Company (Firmy – potocznej nazwy CIA) było 865 liter, tworzących pozorny bełkot, wytłoczonych na płycie z miedzi o grubości pół cala, znajdującej się na placu pomiędzy jej własnymi budynkami.

 

ffkryptosf.jpg

 

Brzmi on następująco ”Drżącymi rękoma zrobiłem mały wyłom w górnym lewym rogu. Następnie poszerzając trochę otwór, włożyłem do środka świecę i zajrzałem wgłąb. Gorące powietrze uciekające z komory spowodowało migotanie płomienia, lecz szczegóły komory wyłoniły się z ciemności. Czy widzisz cokolwiek?”

 

No to zaczynajmy ;)

					<--!Vigenere Encrypted by vMaximus!-->
#include <iostream>
#include <string>
using namespace std;
 
class Vigenere
{
public:
  string key;
 
  Vigenere(string key)
  {
    for(int i = 0; i < key.size(); ++i)
    {
      if(key[i] >= 'A' && key[i] <= 'Z')
        this->key += key[i];
      else if(key[i] >= 'a' && key[i] <= 'z')
        this->key += key[i] + 'A' - 'a';
    }
  }
 
  string encrypt(string text)
  {
    string out;
 
    for(int i = 0, j = 0; i < text.length(); ++i)
    {
      char c = text[i];
 
      if(c >= 'a' && c <= 'z')
        c += 'A' - 'a';
      else if(c < 'A' || c > 'Z')
        continue;
 
      out += (c + key[j] - 2*'A') % 26 + 'A'; 
      j = (j + 1) % key.length();
    }
 
    return out;
  }
 
  string decrypt(string text)
  {
    string out;
 
    for(int i = 0, j = 0; i < text.length(); ++i)
    {
      char c = text[i];
 
      if(c >= 'a' && c <= 'z')
        c += 'A' - 'a';
      else if(c < 'A' || c > 'Z')
        continue;
 
      out += (c - key[j] + 26) % 26 + 'A'; 
      j = (j + 1) % key.length();
    }
 
    return out;
  }
};
 
int main()
{
  Vigenere cipher("VIGENERECIPHER");
 
  string original = "Twoj Text do zeszyfrowania";
  string encrypted = cipher.encrypt(original);
  string decrypted = cipher.decrypt(encrypted);
 
  cout << original << endl;
  cout << "Encrypted: " << encrypted << endl;
  cout << "Decrypted: " << decrypted << endl;
}

Kod jest w języku c++

W miejscu: string original = "Twoj Text do zeszyfrowania"; <- pogrubione zamieniamy na nasz własny tekst do zakodowania.

W ten sposób członkowie Anonymous jak i LulzSec komunikują się ze Sobą.

 

Prawa zastrzeżone dla Amxx.pl

Pozdrawia, vMaximus.



#2 ex0

    Wolny strzelec.

  • Power User

Reputacja: 383
Wszechpomocny

  • Postów:1 127
  • GG:
  • Imię:Kacper
  • Lokalizacja:Żywiec
Offline

Napisano 26.06.2014 16:41

Ładnie, przejrzyście i dobrze napisane.
Chociaż to:
 

W ten sposób członkowie Anonymous jak i LulzSec komunikują się ze Sobą.

wybiło mnie z butów.
oraz:

Kod którego nie może złamać nawet CIA

Poczucie humoru to Ty masz dobre i już Cię lubię :^D


  • +
  • -
  • 0

TWORZENIE FOR SPOŁECZNOŚCIOWYCH | ZARZĄDZANIE STRONAMI INTERNETOWYMI
WSPARCIE TECHNICZNE SERWERÓW HLDS | MODERNIZACJA, OPTYMALIZACJA, ZABEZPIECZENIA


Zapraszam do mojego profilu ;)


#3 Gość_dZIADEK.SG_*

  • Autor tematu
  • Gość

Reputacja: 0

Offline

Napisano 26.06.2014 16:42

;-)

No wiesz, kod który od 20 lat nie został złamany przez rząd Stanów Zjednoczonych a tu LulzSec ładnie połamało :D


Użytkownik vMaximus edytował ten post 26.06.2014 16:43


#4 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 26.06.2014 17:10

Nie no, zadziwiasz mnie ^^ Szacun!


Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#5 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 552
Godlike

  • Postów:11 974
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.06.2014 09:39

Poczucie humoru to Ty masz dobre i już Cię lubię zab.gif

 

Szyfr Vigenère'a może być szyfrem nie do złamania (zostało to udowodnione w 1949 przez Claude'a Elwooda Shannona) przy zachowaniu trzech reguł:
klucz użyty do szyfrowania wiadomości był dłuższy lub równy szyfrowanej wiadomości,klucz musi być wygenerowany w sposób całkowicie losowy (nie może istnieć sposób na odtworzenie klucza na podstawie znajomości działania generatorów liczb pseudolosowych),klucz nie może być użyty do zaszyfrowania więcej niż jednej wiadomości.

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: c++

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych