<?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[Base64-Kodierung]]></title><description><![CDATA[<p>Hi, <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="🙂"
    /><br />
ich muss meine Zugangsdaten (Login und Passwort zu E-Mail-Server) base64 kodieren. In Wikipedia gibt es genug Information, um die Kodierung kennenzulernen.<br />
Weiß vielleicht jemand, ob der Algorithmus zur base64-Kodierung in C++ schon implementiert ist, damit man ihn benutzen kann? Wäre sehr nett.<br />
Ich glaub, dass es so ein Algotihmus schon gibt, weil er sehr oft verwendet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203374/base64-kodierung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 15:40:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203374.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Jan 2008 08:22:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Base64-Kodierung on Tue, 22 Jan 2008 08:22:16 GMT]]></title><description><![CDATA[<p>Hi, <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="🙂"
    /><br />
ich muss meine Zugangsdaten (Login und Passwort zu E-Mail-Server) base64 kodieren. In Wikipedia gibt es genug Information, um die Kodierung kennenzulernen.<br />
Weiß vielleicht jemand, ob der Algorithmus zur base64-Kodierung in C++ schon implementiert ist, damit man ihn benutzen kann? Wäre sehr nett.<br />
Ich glaub, dass es so ein Algotihmus schon gibt, weil er sehr oft verwendet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441073</guid><dc:creator><![CDATA[Noch_Student]]></dc:creator><pubDate>Tue, 22 Jan 2008 08:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Base64-Kodierung on Tue, 22 Jan 2008 08:37:29 GMT]]></title><description><![CDATA[<p>Sicher gibt es schon genug Leute, die so einen Algorithmus umgesetzt haben - du mußt sie nur finden (Google ist dein Freund)</p>
<p>PS: Und auf der Wikipedia-Seite gibt es ganz unten den Abschnitt &quot;Weblinks&quot; - und dort sind neben einigen Online-Umwandlern auch Quelltexte in C und Java verlinkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441077</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 22 Jan 2008 08:37:29 GMT</pubDate></item><item><title><![CDATA[Reply to Base64-Kodierung on Wed, 23 Jan 2008 12:57:40 GMT]]></title><description><![CDATA[<p>Wenn jemand braucht, eine Base64-Kodierung:</p>
<pre><code class="language-cpp">void CMeineKlasseDlg::Base64Code(const CHAR *strIn, CString &amp;strOut) {
	const static CHAR base64ABC[] = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;
	strOut.Empty();
	const size_t len = strlen(strIn);
	for(int i=0; i&lt;len; i+=3) {
		LONG l = ( ((LONG)strIn[i ])&lt;&lt;16 ) |
				 (((i+1) &lt; len) ? (((LONG)strIn[i+1])&lt;&lt;8 ) : 0 ) |
				 (((i+2) &lt; len) ? ( (LONG)strIn[i+2] ) : 0 );
		strOut += base64ABC[(l&gt;&gt;18) &amp; 0x3F];
		strOut += base64ABC[(l&gt;&gt;12) &amp; 0x3F];
		if (i+1 &lt; len) strOut += base64ABC[(l&gt;&gt; 6) &amp; 0x3F];
		if (i+2 &lt; len) strOut += base64ABC[(l ) &amp; 0x3F];
	 }
	  switch (len%3) {
		case 1:
	  strOut += '=';
		case 2:
	  strOut += '=';
  }
}
</code></pre>
<pre><code class="language-cpp">Cstring strUserName; // Das soll kodiert werden
CString strEncode; // Hier liegt der Ergebnis der Kodierung
Base64Code(strUserName, strEncode); // Kodierung
TRACE(&quot;StrUserName nach der Kodierung: %s\n&quot;, strEncode); // Im Debugfenster ansehen
</code></pre>
<p>Die Kodierung funktioniert ganz OK, habe getestet.<br />
Und eine Dekodierung:</p>
<pre><code class="language-cpp">void CMeineKlasseDlg::Base64Decode(IN const CHAR* strIn, OUT CString&amp; strOut) {
  const static CHAR base64ABC[] = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;
  strOut.Empty();
  const size_t len = strlen(strIn);
  for (int i=0; i&lt;len; i+=4) {
   LONG l =
     (( (strIn[i ] != '=')) ? (((LONG)(strchr(base64ABC, strIn[i ]) - base64ABC)) &lt;&lt; 18) : 0) |
     ((((i+1) &lt; len) &amp;&amp; (strIn[i+1] != '=')) ? (((LONG)(strchr(base64ABC, strIn[i+1]) - base64ABC)) &lt;&lt; 12) : 0) |
     ((((i+2) &lt; len) &amp;&amp; (strIn[i+2] != '=')) ? (((LONG)(strchr(base64ABC, strIn[i+2]) - base64ABC)) &lt;&lt; 6 ) : 0) |
     ((((i+3) &lt; len) &amp;&amp; (strIn[i+3] != '=')) ? ((LONG)(strchr(base64ABC, strIn[i+3]) - base64ABC)) : 0);

  BYTE ch1 = ((l&gt;&gt;16) &amp; 0xFF); if (ch1) strOut += ch1;
  BYTE ch2 = ((l&gt;&gt;8 ) &amp; 0xFF); if (ch2) strOut += ch2;
  BYTE ch3 = ( l &amp; 0xFF); if (ch3) strOut += ch3;
  }
}
</code></pre>
<p>Diese habe ich nicht getestet, aber muss auch gut sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441958</guid><dc:creator><![CDATA[Noch_Student]]></dc:creator><pubDate>Wed, 23 Jan 2008 12:57:40 GMT</pubDate></item></channel></rss>