• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

szyfrowanie (a=1,b=2,c=3 itp)

Object Storage Arubacloud
0 głosów
1,299 wizyt
pytanie zadane 13 czerwca 2015 w C i C++ przez michas2710 Nowicjusz (160 p.)

mam pytanie jak zrobic  program szyfrujący? mam czas  do niedzieli, wiele  pomysłów ale  nie  potrafie  tego zapisać  w c++. moje  pytania:

1. jak wpisac słowo "abc" żeby po naciśnięciu ENTERA czyli po zaszufrowaniu było 123?

2.jak to spowrotem odszyfrować?

3. jak wiaomo komurki z tablicy wprowadz sie  liczbami 1,2,3 itp jak zrobic  żeby nr  komórki o zawartośi 1 był a?? czyli że  dla a przyporządkuje  na  1???

5 odpowiedzi

+2 głosów
odpowiedź 13 czerwca 2015 przez greeboCherry Nowicjusz (180 p.)

1. jak wpisac słowo "abc" żeby po naciśnięciu ENTERA czyli po zaszufrowaniu było 123?
2.jak to spowrotem odszyfrować?


Ja bym wczytał "abc" do stringa, potem puścił pętlę która dla każdego znaku w stringu zmniejsza wartość o 96. Taka jest różnica międz znakiem 'a' a '1' w tablicy ASCII http://www.asciitable.com/
Deszyfrujesz analogicznie.
Oczywiście to nie zadziała dla liter powyżej dziewiątej litery alfabetu

3. jak wiaomo komurki z tablicy wprowadz sie  liczbami 1,2,3 itp jak zrobic  żeby nr  komórki o zawartośi 1 był a?? czyli że  dla a przyporządkuje  na  1???

Najprostszym rozwiązaniem jakie przychodzi mi do głowy jest stworzenie stringa(czyli tablicy znaków) o zawartośći " abcdefgh(...)" gdzie na pierwszym miejscu [0] jest pusty znak. Wówczas [1] to a, [2] to b, itd.

Nawiasem mówiąc taki szyfr wydawałby mi się dosyć prosty do odganięcia, może jednak szyfr cezara?
http://pl.wikipedia.org/wiki/Szyfr_Cezara

+1 głos
odpowiedź 13 czerwca 2015 przez Pieniek Gaduła (3,330 p.)
#include <iostream>
#include <string>

using namespace std;

void jakaLiczbaToJakiZnak(){
	char znak;
	cout << "Oto rozpiska jaki znak odpowiada jakiej liczbie\n";
	for (int i = 0; i < 256; i++){
		znak = i;
		cout << i << " - " << znak << endl;
	}
}

int main(){

	//Rozpiska jaki znak odpowiada jakiej liczbie
	jakaLiczbaToJakiZnak();

	//Pobieramy slowo
	cout << "Podaj slowo: ";
	string slowo;
	cin >> slowo;

	//Zmieniamy znaki na liczby
	cout << "Podane slowo sklada sie z nastepujacych liczb:\n";
	for(int i = 0; i < slowo.length(); i++){
		int liczba = slowo.at(i);
		cout << slowo.at(i) << " - " << liczba << endl;
	}




	cin >> slowo;
}

 

0 głosów
odpowiedź 13 czerwca 2015 przez pewolt Mądrala (5,790 p.)
edycja 13 czerwca 2015 przez pewolt

robisz to tak:

#include <iostream>

using namespace std;

const int rozmiar = 32;
char tablica[rozmiar];

main()
{
    cout<<"Wpisz slowo do zaszyfrowania:"<<endl;
    cin>>tablica;
    for(int a = 0;a<rozmiar;a++)
    {
        switch(tablica[a])
        {
            case 'a':
                tablica[a] = '1';
            break;
            case 'b':
                tablica[a] = '2';
            break;
            case 'c':
                tablica[a] = '3';
            break;
            case 'd':
                tablica[a] = '4';
            break;
            case 'f':
                tablica[a] = '5';
            break;
            //i tak dalej
        }
    }
    cout<<"szyfr to: "<<tablica<<endl;
    cout<<"wpisz co kolwiek aby zakonczyc program"<<endl;
    cin>>tablica;
    return 0;
}

odwalilem za ciebie polowe roboty a teraz z deszyfracja musisz sam sobie poradzic wystarczy ruszyc glowa

komentarz 13 czerwca 2015 przez Pieniek Gaduła (3,330 p.)
Nie pisz tak D: To tępe klepanie kodu a nie programowanie.Powinieneś znaleść wzór którym zamienisz znak w liczbę zamiast rozpisywać przypadki dla każdego znaku.
komentarz 13 czerwca 2015 przez pewolt Mądrala (5,790 p.)
wiem wiem ale nie chcialo mi sie myslec :D
komentarz 13 czerwca 2015 przez michas2710 Nowicjusz (160 p.)
a mi właśnie  o to chodził xD robie  to od  3  dni no i jpr  zalamać  się  można. cyfry na  literki to sam już sb wpisze a rozszyfrowywania  nie  potrzebuje, wielkie  dzięki
0 głosów
odpowiedź 13 czerwca 2015 przez Dorion300 Szeryf (90,250 p.)
string jawny = "aąbcćdeęfghijklłmnńoóprsśutwyzźżAĄBCĆDEĘFGHIJKLŁMNŃOÓPRSŚTUWYZŹŻ123456789`~!@#$%^&*()_+=-|][}{;':/?<>,.";
    string klucz = "-~NgGbHBŻĘDd(rPi[]Ź#.Z4fżIkow_Yay>RjE5}8Ls3M)$ŁuA=!'%S|`ó2{ąĆŃźUWnTO1+9/J&KŚ;Fm:zcś6ń@ptłlęhC,ć<e*7^?ÓĄ";
    int djawnego = jawny.length();

    string szyfruj(string strin)
    {
        int ilosc;
        ilosc = strin.length();
        string szyfr;
        int o;
        int i;
        int p;
        for(i=0; i<ilosc ;i++)
        {
            if(strin[i] == ' ')
            {
                szyfr += ' ';
                continue;
            }
            for(p=0;p<=djawnego;p++)
            {

                if(p<djawnego)
                {
                    if(strin[i] != jawny[p])
                    {
                        continue;
                    }
                    if(strin[i] == jawny[p])
                    {
                        break;
                    }
                }
                szyfr += strin[i];
            }

            for(o=0; o<djawnego;o++)
            {
                if(strin[i] == jawny[o])
                {
                    szyfr += klucz[o];
                    continue;
                }
            }
        }
        return szyfr;
    }

    string deszyfruj(string szyfr)
    {
        int ilosc;
        ilosc = szyfr.length();

        string strin;

        int o;
        int i;
        int p;
        for(i=0; i<ilosc ;i++)
        {
            if(szyfr[i] == ' ')
            {
                strin += ' ';
                continue;
            }
            for(p=0;p<=djawnego;p++)
            {
                if(p<=(djawnego-1))
                {
                    if(szyfr[i] != klucz[p])
                    {
                        continue;
                    }
                    if(szyfr[i] == klucz[p])
                    {
                        break;
                    }
                }
                strin += szyfr[i];
            }

            for(o=0; o<djawnego;o++)
            {

                if(szyfr[i] == klucz[o])
                {
                    strin += jawny[o];
                }
            }
        }

        return strin;
    }

Taki stary program któy znalazłem na dysku.

0 głosów
odpowiedź 13 czerwca 2015 przez DavidMCPolska Bywalec (2,770 p.)

Nagłówek #include <iomanip>

 

const int tabD = 27;
				char tab[tabD] = { ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
					'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
//potem bla bla bla wczytujesz co wpisze ktoś, a potem

transform(imie.begin(), imie.end(), imie.begin(), ::toupper);
int dlugosc;
dlugosc = imie.length();
for (i = 0; i < dlugosc; i++)
{
			for (int i2 = 0; i2 < tabD; i2++)
	{
		if (wyraz[i2] == tab[i3]) liczba[i2] = i3;
	}
					}
//potem można to wpisać z powrotem do tablicy wyraz

for (int i3 = 0; i3 < dlugosc; i3++)
{
wyraz[i3] = liczba[i3];
}
cout << "Szyfr: " << wyraz;

Nie wiem, ale może trzeba jeszcze innych nagłówków. Jak by nie działało to dodaj

#include <cstdio>
#include <windows.h>
#include <cstdlib>
#include <conio.h>

Pewnie tylko jedna jest potrzebna :D

Podobne pytania

0 głosów
1 odpowiedź 198 wizyt
pytanie zadane 11 kwietnia 2016 w Assembler przez noname375 Początkujący (300 p.)
0 głosów
0 odpowiedzi 137 wizyt
pytanie zadane 25 października 2020 w Sprzęt komputerowy przez Ditrix Mądrala (5,650 p.)

92,614 zapytań

141,465 odpowiedzi

319,773 komentarzy

61,996 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...