<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[AES Verschlüsselung]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich hab mal eine Frage. Ich probiere einwenig mit der AES-Verschlüsslung rum. Hab auch schon ein super Beispiel dazu gefunden und dieses einwenig abgeändert. Ich habe versucht das Beispiel so zu verändern, dass es ein Textfile auf der Platte öffnet, Verschlüsselt und dann wieder im Klartext darstellt. Leider gelingt mir das noch nicht wirklich, da immer nur ein Teil des Inhaltes im Textfile verschlüsselt wird. Evtl. kann mir ja jemand ein paar Tips geben, wie ich das umsetzen könnte. Das Problem wird bestimmt an der Blocklänge liegen ich hab da aber ehrlich gesagt noch nicht ganz durchgeblickt wie man das dann variable verändern kann. Die Textdatei soll ja variable sein.</p>
<pre><code class="language-cpp">char szHex[33];
		//One block testing
		CRijndael oRijndael;
		oRijndael.MakeKey(&quot;abcdefghabcdefgh&quot;, &quot;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&quot;, 16, 16);
		//oRijndael.MakeKey(

		//READ FILE	
		char temp1[1];
		FILE* handle;
		CString fileName= &quot;c:\\textfile.log&quot;;
		CString fileContent;
		handle=fopen(fileName,&quot;rb&quot;);	//READ im BINARY Modus for FEATURE-USE

		if (0!=handle)    
			{   
			while((fread(temp1,1,1,handle))!=NULL)
				{
				fileContent+=temp1[0];
				}
			fclose(handle);
			}
		//ENDE READ FILE 

		//CSTRING 2 CHAR
		char* szDataIn = fileContent.GetBuffer();
		cout &lt;&lt; &quot;szDataIn: &quot; &lt;&lt; szDataIn &lt;&lt; endl;

		//DataOut = dataIn aber LEER 
		char* szDataOut = fileContent.GetBuffer();
		memset(szDataOut, 0, sizeof(fileContent));
		cout &lt;&lt; &quot;szDataOut: &quot; &lt;&lt; szDataOut &lt;&lt; endl;

		//Encryption
		oRijndael.Encrypt(szDataIn, szDataOut, 32, CRijndael::ECB);	//48 / 64 immer multi von 16
		cout &lt;&lt; &quot;szDataOut Encrypted: &quot; &lt;&lt; szDataOut &lt;&lt; endl;

		//Encryptet DataOut als Hex ausgeben
		CharStr2HexStr((unsigned char*)szDataOut, szHex, 16);
		cout &lt;&lt; &quot;szDataOut Encrypted (HEX): &quot; &lt;&lt; szHex &lt;&lt; endl;

		//DataIn löschen
		memset(szDataIn, 0, sizeof(fileContent));

		//Decryption
		oRijndael.Decrypt(szDataOut, szDataIn, 32, CRijndael::ECB);
		cout &lt;&lt; &quot;szDataIn: &quot; &lt;&lt; szDataIn &lt;&lt; endl;
</code></pre>
<p>Danke!</p>
<p>Gruß</p>
<p>KMB</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190123/aes-verschlüsselung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 15:21:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190123.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Aug 2007 20:58:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to AES Verschlüsselung on Sun, 19 Aug 2007 20:58:07 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich hab mal eine Frage. Ich probiere einwenig mit der AES-Verschlüsslung rum. Hab auch schon ein super Beispiel dazu gefunden und dieses einwenig abgeändert. Ich habe versucht das Beispiel so zu verändern, dass es ein Textfile auf der Platte öffnet, Verschlüsselt und dann wieder im Klartext darstellt. Leider gelingt mir das noch nicht wirklich, da immer nur ein Teil des Inhaltes im Textfile verschlüsselt wird. Evtl. kann mir ja jemand ein paar Tips geben, wie ich das umsetzen könnte. Das Problem wird bestimmt an der Blocklänge liegen ich hab da aber ehrlich gesagt noch nicht ganz durchgeblickt wie man das dann variable verändern kann. Die Textdatei soll ja variable sein.</p>
<pre><code class="language-cpp">char szHex[33];
		//One block testing
		CRijndael oRijndael;
		oRijndael.MakeKey(&quot;abcdefghabcdefgh&quot;, &quot;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&quot;, 16, 16);
		//oRijndael.MakeKey(

		//READ FILE	
		char temp1[1];
		FILE* handle;
		CString fileName= &quot;c:\\textfile.log&quot;;
		CString fileContent;
		handle=fopen(fileName,&quot;rb&quot;);	//READ im BINARY Modus for FEATURE-USE

		if (0!=handle)    
			{   
			while((fread(temp1,1,1,handle))!=NULL)
				{
				fileContent+=temp1[0];
				}
			fclose(handle);
			}
		//ENDE READ FILE 

		//CSTRING 2 CHAR
		char* szDataIn = fileContent.GetBuffer();
		cout &lt;&lt; &quot;szDataIn: &quot; &lt;&lt; szDataIn &lt;&lt; endl;

		//DataOut = dataIn aber LEER 
		char* szDataOut = fileContent.GetBuffer();
		memset(szDataOut, 0, sizeof(fileContent));
		cout &lt;&lt; &quot;szDataOut: &quot; &lt;&lt; szDataOut &lt;&lt; endl;

		//Encryption
		oRijndael.Encrypt(szDataIn, szDataOut, 32, CRijndael::ECB);	//48 / 64 immer multi von 16
		cout &lt;&lt; &quot;szDataOut Encrypted: &quot; &lt;&lt; szDataOut &lt;&lt; endl;

		//Encryptet DataOut als Hex ausgeben
		CharStr2HexStr((unsigned char*)szDataOut, szHex, 16);
		cout &lt;&lt; &quot;szDataOut Encrypted (HEX): &quot; &lt;&lt; szHex &lt;&lt; endl;

		//DataIn löschen
		memset(szDataIn, 0, sizeof(fileContent));

		//Decryption
		oRijndael.Decrypt(szDataOut, szDataIn, 32, CRijndael::ECB);
		cout &lt;&lt; &quot;szDataIn: &quot; &lt;&lt; szDataIn &lt;&lt; endl;
</code></pre>
<p>Danke!</p>
<p>Gruß</p>
<p>KMB</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347793</guid><dc:creator><![CDATA[kmb]]></dc:creator><pubDate>Sun, 19 Aug 2007 20:58:07 GMT</pubDate></item><item><title><![CDATA[Reply to AES Verschlüsselung on Mon, 20 Aug 2007 11:44:20 GMT]]></title><description><![CDATA[<p>Klar, du kannst deine Datei natürlich nicht in einem einzigen Durchgang verschlüsseln. Bei AES z.B. musst du sie in 16 Byte-Blöcke unterteilen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348151</guid><dc:creator><![CDATA[Ajaw]]></dc:creator><pubDate>Mon, 20 Aug 2007 11:44:20 GMT</pubDate></item><item><title><![CDATA[Reply to AES Verschlüsselung on Mon, 20 Aug 2007 13:57:04 GMT]]></title><description><![CDATA[<p>Erstmal Danke für Antwort.</p>
<p>Das heißt also ich muss eine Schleife erstellen die jeweils 16 Byte-Blöcke verschlüsselt. Die Datei wird ja nicht exakt auf 16'ner aufteilbar sein, was passiert denn mit den übrigen BYtes? Muss ich dann noch NUlBytes oder so ranhängen?</p>
<p>Gruß</p>
<p>KMB</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348324</guid><dc:creator><![CDATA[kmb]]></dc:creator><pubDate>Mon, 20 Aug 2007 13:57:04 GMT</pubDate></item><item><title><![CDATA[Reply to AES Verschlüsselung on Mon, 20 Aug 2007 16:04:00 GMT]]></title><description><![CDATA[<p>Müssen nicht Nullbytes sein, aber du musst irgendwas anhängen um auf 16 Byte zu kommen.<br />
Weiters solltest du dir wahrscheinlich dashier durchlesen, da die Verschlüsselung &quot;einfach so&quot; (ECB) nicht unbedingt sehr sicher ist: <a href="http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation" rel="nofollow">http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348423</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 20 Aug 2007 16:04:00 GMT</pubDate></item><item><title><![CDATA[Reply to AES Verschlüsselung on Tue, 21 Aug 2007 06:57:46 GMT]]></title><description><![CDATA[<p>Super Tip hustbaer. Danke! ich werde mal Sehen ob ich nicht nen anderen Standart dann nutze.</p>
<p>Gruß</p>
<p>KMB</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348657</guid><dc:creator><![CDATA[kmb]]></dc:creator><pubDate>Tue, 21 Aug 2007 06:57:46 GMT</pubDate></item><item><title><![CDATA[Reply to AES Verschlüsselung on Tue, 21 Aug 2007 23:26:28 GMT]]></title><description><![CDATA[<p>Wie, anderen Standard? AES ist schon gut, bloss musst du nen anderen &quot;block cipher mode&quot; verwenden, z.B. &quot;cipher block chaining&quot;.</p>
<p>Zusätzlich kannst du noch vorne eine Anzahl Zufalls-Bytes dranhängen und diese dann mitverschlüsseln, dann sehen die selben verschlüsselten Daten nicht immer gleich aus. Natürlich musst du diese Zufalls-Bytes nach dem entschlüsseln dann überspringen, sollte logisch sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Wenn du ganz paranoid bist^^ kannst du die Anzahl der vorangestellten Zufalls-Bytes auch noch zufällig bestimmen, und z.B. ganz hinten an die Daten anhängen (damit du nach dem decodieren weisst wie viele du überspringen musst). Dadurch kann man dann nichtmal mehr die genaue Länge der Originaldaten aus den codierten Daten &quot;erraten&quot; ohne den Schlüssel zu kennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349413</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 21 Aug 2007 23:26:28 GMT</pubDate></item></channel></rss>