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

"szyfrowanie" i ustawianie ścieżki do pliku tekstowego w C++

Object Storage Arubacloud
0 głosów
984 wizyt
pytanie zadane 8 sierpnia 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
edycja 8 sierpnia 2017 przez Jakub 0

witam ,może zanim powiem co dokładnie mam na myśli to podam napisany prze ze mnie kod dla ćwiczeń :

#include <iostream>
#include <vector>
#include <fstream>
#include <cstdlib>
#include <conio.h>

using namespace std;

int pow(int p, int w) { //potegowanie niezbedne do procesu konwersji zapisu bin na dec
	if(w==0)return 1;
	else return p*pow(p,w-1);
}

int convert(string bin) {
    int add = 0;
	int count = 0;
	
	for(int i=bin.length()-1; i>=0; i--){ //taka tam konwersja (miałem z nią niełe problemy :))
		if(bin[i]!='0'){
			add+=pow(2,count);
		}
		count++;
	}
	
	return add;
}

void code(vector<string>&vec) { //ogolny zamieniajacy wektor z zapisem binarnym na znak z ASCI
	int s = vec.size();
	int arr[s];
	char z[s];

	for(int i=0; i<s; i++) {
		arr[i] = convert(vec[i]); 
		z[i] = arr[i];
	}

	for(int i=0; i<s; i++) {
		vec[i] = "";
		vec[i]+=z[i];
	}
}

int main() {
	fstream file;

	file.open("file.txt",ios::in); //wczytanie pliku i wyswietlenie wyniku dialania programu

	if(file.good()==false) {
		cout<<0<<endl;
	} else {
		vector<string>digit;
		string line;

		while(getline(file,line)) {
			digit.push_back(line);
		}

		code(digit);

		for(int i=0; i<digit.size(); i++) {
			cout<<digit[i];
		}
	}

	file.close();
	
	getch();

	return 0;
}

program zamienia linie tekstu z zapisem binarnym na znaki które są potem wyświetlane w programie . Zrobiłem taki algorytm ponieważ drażniło mnie to że w mojej gierce każdy mógł zerknąć do pliku i zobaczyć i zmieniać informacje zawarte w grze (np obecny rekord) . Program niestety nie likwiduje tej sytuacji ale chociaż wprowadza zapis binarny (a nie każdy go zna) .Pozostał jeszcze problem jak umieścić ten plik w jakimś konkretnym miejscu na dysku i żeby nie musiał być koło programu (bo np teraz nie mogę sobie dać samą kopie programu na pulpit bo wtedy on nie wczyta informacji z pliku ) Mam jeszcze pytanie czy są inne lepsze metody szyfrowania (wiem że to co zrobiłem nie można nazwać szyfrem) .Z góry dziękuje za pomoc i pozdrawiam :D

komentarz 8 sierpnia 2017 przez Jakub 0 Pasjonat (23,120 p.)
* Co sądzicie o samym kodzie, co można ulepszyć?

1 odpowiedź

+1 głos
odpowiedź 8 sierpnia 2017 przez bartolinciu Dyskutant (7,580 p.)
wybrane 8 sierpnia 2017 przez Jakub 0
 
Najlepsza
Żeby plik był w konkretnym miejscu na dysku wystarczy, że podasz pełną ścieżkę do niego np. "C:\users\TWOJUSER\AppData\roaming\ NAZWATWOJEJGRY\file.txt". A co do kwestii szyfrowania to możesz poszukać w google algorytmów szyfrujących. Najprościej użyć kodowania base64. Możesz też sam ułożyć jakiś algorytm z odwracalnych operacji takich jak dodawanie, odejmowanie, xorowanie, rotacja bitowa. Tylko nie używaj samego xorowania bo łatwo jest takie szyfrowanie złamać.
komentarz 8 sierpnia 2017 przez Jakub 0 Pasjonat (23,120 p.)
przywrócone 8 sierpnia 2017 przez Jakub 0
dzięki, zauważyłem też że można zmienić rozszerzenie pliku ,czyli na przykład zamiast .txt dać .snk .

To niewiele zmienia ale gdyby to dodatkowo zaszyfrować to plik był by trudniej osiągalny dla użytkownika ...

Podobne pytania

0 głosów
1 odpowiedź 414 wizyt
pytanie zadane 20 sierpnia 2019 w C i C++ przez magicznyukf Początkujący (260 p.)
0 głosów
1 odpowiedź 472 wizyt

92,632 zapytań

141,502 odpowiedzi

319,882 komentarzy

62,015 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!

...