<?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[char* conventierung]]></title><description><![CDATA[<p>Ich habe mir mal eine AES Verschlüsselung angesehen. Dabei habe ich hier im Forum eine gefunden : <a href="http://www.c-plusplus.net/forum/148732" rel="nofollow">http://www.c-plusplus.net/forum/148732</a></p>
<p>Nun wollte ich 2 Funktionen schreiben die mir die Verschlüsselung in String formatieren:</p>
<pre><code class="language-cpp">void encrypt(std::string &amp;text, std::string password)
{
    char* data = const_cast&lt;char*&gt; (text.c_str());
    char* pw   = const_cast&lt;char*&gt; (password.c_str());

    aes AES;
    AES.encrypt(&amp;data, text.length(), pw);
    text = data;

    delete [] data;
    delete [] pw;
}

void decrypt(std::string&amp; text, std::string password)
{
    char* data = const_cast&lt;char*&gt; (text.c_str());
    char* pw   = const_cast&lt;char*&gt; (password.c_str());

    aes AES;
    AES.decrypt(&amp;data, text.length(), pw);
    text = data;

    delete [] data;
    delete [] pw;
}
</code></pre>
<p>Das klappt alles ohne Fehler aber wen ich mehr als 30 Zeichen verschlüsseln will bricht er ab und schreibt nur die 30 Zeichen(Und ein wenig Datenmüll -.-)</p>
<p>Liegt dass an const_cast&lt;char*&gt; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300524/char-conventierung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 18:28:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300524.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Mar 2012 22:25:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char* conventierung on Sun, 04 Mar 2012 22:25:34 GMT]]></title><description><![CDATA[<p>Ich habe mir mal eine AES Verschlüsselung angesehen. Dabei habe ich hier im Forum eine gefunden : <a href="http://www.c-plusplus.net/forum/148732" rel="nofollow">http://www.c-plusplus.net/forum/148732</a></p>
<p>Nun wollte ich 2 Funktionen schreiben die mir die Verschlüsselung in String formatieren:</p>
<pre><code class="language-cpp">void encrypt(std::string &amp;text, std::string password)
{
    char* data = const_cast&lt;char*&gt; (text.c_str());
    char* pw   = const_cast&lt;char*&gt; (password.c_str());

    aes AES;
    AES.encrypt(&amp;data, text.length(), pw);
    text = data;

    delete [] data;
    delete [] pw;
}

void decrypt(std::string&amp; text, std::string password)
{
    char* data = const_cast&lt;char*&gt; (text.c_str());
    char* pw   = const_cast&lt;char*&gt; (password.c_str());

    aes AES;
    AES.decrypt(&amp;data, text.length(), pw);
    text = data;

    delete [] data;
    delete [] pw;
}
</code></pre>
<p>Das klappt alles ohne Fehler aber wen ich mehr als 30 Zeichen verschlüsseln will bricht er ab und schreibt nur die 30 Zeichen(Und ein wenig Datenmüll -.-)</p>
<p>Liegt dass an const_cast&lt;char*&gt; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2188518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188518</guid><dc:creator><![CDATA[CONVI]]></dc:creator><pubDate>Sun, 04 Mar 2012 22:25:34 GMT</pubDate></item><item><title><![CDATA[Reply to char* conventierung on Sun, 04 Mar 2012 22:48:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char* data = const_cast&lt;char*&gt; (text.c_str());
    char* pw   = const_cast&lt;char*&gt; (password.c_str());

    // ...
    AES.encrypt(&amp;data, text.length(), pw);

    // ...
    delete [] data;
    delete [] pw;
</code></pre>
<p>Bist du des Wahnsinns? Überleg mal, was du da tust:</p>
<p>1. const_cast heißt soviel wie: &quot;Da ist ein Fehler in dieser fremden Bibliothek die ich benutzen möchte, aber ich weiß es besser und das ist ganz sicher richtig so.&quot;<br />
Bist du dir wirklich sicher, dass du es besser als die Standardbibliothek weißt?<br />
2. &amp;data. Die Adresse eines Pointers. Sicher, dass du das möchtest?<br />
3. Das delete ist da so etwas von falsch, da fällt mir noch nicht einmal ein lässiger Spruch zu ein. Du gibst da Teile des Strings frei!</p>
<p>Ich halte es für ein kleines Wunder, dass da überhaupt auch nur irgendetwas funktioniert und das nicht immer abstürzt.</p>
<blockquote>
<p>Liegt dass an const_cast&lt;char*&gt; ?</p>
</blockquote>
<p>Auch. Aber es liegt vor allem daran, dass du nicht verstehst, was du da tust. Das sind ganz grobe Fehler. Bevor du fremde Bibliotheken nutzt, musst du mindestens die Grundlagen verstehen. Besonders wenn du nur reines C++ kannst und nun eine C-Schnittstelle benutzen musst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2188531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188531</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 04 Mar 2012 22:48:43 GMT</pubDate></item><item><title><![CDATA[Reply to char* conventierung on Sun, 04 Mar 2012 22:54:46 GMT]]></title><description><![CDATA[<p>Hast du überhaupt irgendetwas verstanden von dem was du da machst?<br />
Man muss allerdings auch zugeben, dass der aes Code ziemlich schlecht ist. (Sorry Swordfish ;))</p>
<p>Probier mal:</p>
<pre><code class="language-cpp">void decrypt(const std::string&amp; text, const std::string&amp; password)
{
    char* data = new char[text.length() + 1];
    char* pw = new char[password.length() + 1]; // Zu faul um nachzugucken ob das verändert wird.
    std::strcpy(data, text.c_str());
    std::strcpy(pw, password.c_str());

    aes AES;
    AES.decrypt(&amp;data, text.length(), pw);

    delete[] data;
    delete[] pw;
}
</code></pre>
<p>Trotzdem würde ich dir raten den ganzen Kram erst mal ordentlich umzuschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2188534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188534</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 04 Mar 2012 22:54:46 GMT</pubDate></item><item><title><![CDATA[Reply to char* conventierung on Sun, 04 Mar 2012 22:52:53 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Bist du dir wirklich sicher, dass du es besser als die Standardbibliothek weißt?<br />
2. &amp;data. Die Adresse eines Pointers. Sicher, dass du das möchtest?</p>
</blockquote>
<p>Wenn du dir den Code anguckst, ist das tatsächlich korrekt. Auch wenn es schon beim Lesen weh tut. Es wird noch schlimmer wenn du den AES Code siehst. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2188535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188535</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 04 Mar 2012 22:52:53 GMT</pubDate></item><item><title><![CDATA[Reply to char* conventierung on Sun, 04 Mar 2012 22:56:24 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Bist du dir wirklich sicher, dass du es besser als die Standardbibliothek weißt?<br />
2. &amp;data. Die Adresse eines Pointers. Sicher, dass du das möchtest?</p>
</blockquote>
<p>Wenn du dir den Code anguckst, ist das tatsächlich korrekt. Auch wenn es schon beim Lesen weh tut. Es wird noch schlimmer wenn du den AES Code siehst. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Oh, ich seh's, jetzt wo ich mir den Code von Swordfish angucke. Aber das liegt an Swordfishs Code. <strong>Der ist ja grauenhaft!</strong> Ich kann schon beim groben drüberschauen ein paar dicke Fehler sehen (und damit meine ich nicht den schlechten Stil, sondern echte Fehler).</p>
<p>@Threadersteller: Benutz doch lieber etwas etabliertes wie Crypto++, anstatt Lösungen aus zufälligen Forenbeiträgen von irgendwelchen Leuten aus dem Internet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2188537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188537</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 04 Mar 2012 22:56:24 GMT</pubDate></item></channel></rss>