# Passwort verschlüsselt abspeichern



## Marko Petsch (22. Februar 2005)

Hallo ihr,
ich habe mal wieder ein Problem. Es geht mal wieder um eine MFC-Anwendung (Visual Studio .NET 2003, C++). Es funktioniert alles wunderbar, nur habe ich da ein Problem mit dem Passwort. Wenn ich die Datei mit nem Editor anschau iss das Passwort in Reinform dort lesbar und das möchte ich verhindern. Kennt jemand eine effiziente Methode das Passwort verschlüsselt in die Datei zu schreiben und wie man das dan am besten wieder innerhalb des Programms wieder entschlüsselt? Der Passwortstring ist ein CString.
Danke für eure Mühe
Marko Petsch


----------



## Tobias K. (22. Februar 2005)

moin


Kommt drauf an wie sicher das ganze sein soll.

Das einfachste wird ne XOR verschlüsselung sein.


mfg
umbrasaxum


----------



## colt4ever (22. Februar 2005)

Oder du speicherst es byteweisse invertiert (variable = ~variable und zählst zu dem ASCII-WERT eine bestimmte Zahl (variable = variable + ZAHL) dazu in die datei (falls umbrasaxum das nicht meint, ich weiss nicht wie man ne XOR verschlüsselung ausprogrammiert). Dann wenn du das Programm startest invertiert die Zahl wieder und zähl die Zahl wieder ab.


----------



## Tobias K. (22. Februar 2005)

moin


Nein das meinte ich nicht, ne XOR ist was ganz anderes.

Problem ist nur das das alles relativ unsicher ist, jedoch für den "normalen" nutzer ausreichen dürfe.

Nur leider hat Marko Petsch nur sehr "dünne" Angaben gemacht wie sicher es sein soll.


mfg
umbrasaxum


----------



## Marko Petsch (22. Februar 2005)

also anfürsich soll das passwort halt net in reinform in der datei stehen, brauch keine 128bit-verschlüsselung sein, sondern das das passwort net einfach so per editor gelesen werden kann.


----------



## Tobias K. (22. Februar 2005)

moin


Hier ein Beispiel für eine Kodierung per XOR:

```
char *key = "halloichbineinkey";
	char *text = "verschluesselmichverschluesselmichverschluesselmich";
	char ergebnis[50];


	int keylen = strlen(key);
	int textlen	= strlen(text);

	for(int t = 0, k = 0; t < textlen; t++, k++)
	{
		if(k == keylen)
			k=0;

		ergebnis[t] = (text[t] ^ key[k]);
	}
```


Bei weiteren Fragen helfe ich gerne.


mfg
umbrasaxum


----------



## colt4ever (22. Februar 2005)

AHA!  Jetzt weiss ich was eine XOR verschlüsselung ist.

JUHU, wieder was gelernt


----------



## Marko Petsch (22. Februar 2005)

Hallo,
danke klasse funktioniert,
ich weiß es iss nu ne doofe Frage, nur zur Sicherheit, das Passwort kann ich auch mit dem selben Algorithmus wieder entschlüsseln?

Gruß Marko


----------



## Tobias K. (22. Februar 2005)

moin


So doof ist die Frage garnicht.
Du kannst es, musst einfach als "text" Variable den Code nehmen und schon hast wieder das Original.

Bedenke nur das bei der Verschlüsselung Zeichen entstehen können die nicht ohne weiteres im "Dosfenster" angezeigt werden können.


mfg
umbrasaxum


----------

