<?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[BlowFish - decrypting]]></title><description><![CDATA[<p>Hi Forum,</p>
<p>ich versuche gerade (bzw. seit ner ganzen weile) ein verschlüsselte Passwort mit BlowFish wieder zu entschlüsseln.<br />
Dazu hab ich mir den BlowFish als C++-Source runtergeladen und in mein Projekt eingebunden. (DL von: <a href="http://www.codeproject.com/cpp/blowfish.asp" rel="nofollow">http://www.codeproject.com/cpp/blowfish.asp</a>)</p>
<p>Soweit klappt auch alles, nur will der BlowFish beim decrypting von mir wissen, wie lange dass Passwort sein wird, wenn es entschlüsselt ist.<br />
Mein Problem ist jetzt, dass das Passwort zwischen 4 und 8 Stellen haben kann.<br />
Wenn ich der decrypt-Methode eine 8 mitgebe und das Passwort nur 5 Stellen hat, bekomm ich dass Entschlüsselte Passwort + 3 Zeichen die zufällig im Speicher stehn. Ich hab mir auch schon überlegt den gesamten char* mit '\0' vorzubelegen, nur bringt das nix, da die Methode den gesamten char* neu beschreibt und somit die '\0' ebenfalls weg sind.</p>
<p>Kennt jemand eine Lösung oder eine andere BlowFish-Implementierung um dieses Problem zu beheben oder zu umgehen.</p>
<p>Danke im voraus!</p>
<p>cu<br />
Claus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/123751/blowfish-decrypting</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 05:28:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/123751.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Oct 2005 16:37:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to BlowFish - decrypting on Wed, 19 Oct 2005 16:37:25 GMT]]></title><description><![CDATA[<p>Hi Forum,</p>
<p>ich versuche gerade (bzw. seit ner ganzen weile) ein verschlüsselte Passwort mit BlowFish wieder zu entschlüsseln.<br />
Dazu hab ich mir den BlowFish als C++-Source runtergeladen und in mein Projekt eingebunden. (DL von: <a href="http://www.codeproject.com/cpp/blowfish.asp" rel="nofollow">http://www.codeproject.com/cpp/blowfish.asp</a>)</p>
<p>Soweit klappt auch alles, nur will der BlowFish beim decrypting von mir wissen, wie lange dass Passwort sein wird, wenn es entschlüsselt ist.<br />
Mein Problem ist jetzt, dass das Passwort zwischen 4 und 8 Stellen haben kann.<br />
Wenn ich der decrypt-Methode eine 8 mitgebe und das Passwort nur 5 Stellen hat, bekomm ich dass Entschlüsselte Passwort + 3 Zeichen die zufällig im Speicher stehn. Ich hab mir auch schon überlegt den gesamten char* mit '\0' vorzubelegen, nur bringt das nix, da die Methode den gesamten char* neu beschreibt und somit die '\0' ebenfalls weg sind.</p>
<p>Kennt jemand eine Lösung oder eine andere BlowFish-Implementierung um dieses Problem zu beheben oder zu umgehen.</p>
<p>Danke im voraus!</p>
<p>cu<br />
Claus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/896351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/896351</guid><dc:creator><![CDATA[cwanner]]></dc:creator><pubDate>Wed, 19 Oct 2005 16:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Wed, 19 Oct 2005 16:47:33 GMT]]></title><description><![CDATA[<p>cwanner schrieb:</p>
<blockquote>
<p>Kennt jemand eine Lösung oder eine andere BlowFish-Implementierung um dieses Problem zu beheben oder zu umgehen.</p>
</blockquote>
<p>du lässt dir alle 3 passwörter erzeugen (mit for <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="😉"
    /> ) und probierst dann aus, welches richtig ist.<br />
allerdings muss ich zugeben, dass mir das richtige verständnis für dein problem fehlt. muss die schlüssellänge normalerweise etwa nicht mit angegeben werden, oder wie?</p>
<p>ansonsten: <a href="http://www.openssl.org/" rel="nofollow">OpenSSL</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/896356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/896356</guid><dc:creator><![CDATA[terraner]]></dc:creator><pubDate>Wed, 19 Oct 2005 16:47:33 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Wed, 19 Oct 2005 19:02:37 GMT]]></title><description><![CDATA[<p>OK, war vielleicht etwas kompliziert beschrieben. <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 />
Leider hat ich die Sourcen gerade nicht zur Hand,<br />
deshalb ein Beispiel</p>
<p>Mein Passwort ist: hallo<br />
Encrypted: asfhaghfgajhgfhsagfhsag (irgendwas eben)</p>
<p>Wen ich den BlowFish aufrufen will, muss ich das über folgende Methode tun:</p>
<pre><code class="language-cpp">void CBlowFish::Decrypt(const unsigned char* in, unsigned char* out, size_t n, int iMode)
</code></pre>
<p>1. Parameter: edcryptedPasswort<br />
2. Parameter: decryptedPasswort<br />
3. Parameter: Länge des decrypteten Passwort<br />
4. Parameter: iMode z.B. ECB</p>
<p>Ich such jetzt praktisch eine Implementierung, die auf den 3. Parameter verzichten kann, da ich die länge des Passworts an dieser Stelle nicht weis.<br />
(ich bekomm nur das encryptete Passwort übergeben.</p>
<p>Hast Du vielleicht ein kleines Beispiel zu OpenSSL mit dem BlowFish?</p>
<p>Danke</p>
<p>cu<br />
Claus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/896488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/896488</guid><dc:creator><![CDATA[cwanner]]></dc:creator><pubDate>Wed, 19 Oct 2005 19:02:37 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Wed, 19 Oct 2005 20:24:42 GMT]]></title><description><![CDATA[<p>Dann speicher doch die Länge des Passworts gleich mit - entweder im Klartext oder verschlüssle die Länge auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/896556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/896556</guid><dc:creator><![CDATA[Taurin]]></dc:creator><pubDate>Wed, 19 Oct 2005 20:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Thu, 20 Oct 2005 05:17:37 GMT]]></title><description><![CDATA[<blockquote>
<p>Dann speicher doch die Länge des Passworts gleich mit - entweder im Klartext oder verschlüssle die Länge auch.</p>
</blockquote>
<p>Die Schnittstelle zwischen den Programmen ist fest definiert, da kann ich nicht die länge einfach noch dau nehmen.</p>
<p>Hat niemand vielleicht noch ne Idee?</p>
<p>Hab mir gerade OpenSSL runtergeladen, nur steig ich irgendwie nicht durch, wie ich OpenSSL in mein Programm linken muss.</p>
<p>Danke &amp; cu<br />
Claus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/896679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/896679</guid><dc:creator><![CDATA[cwanner]]></dc:creator><pubDate>Thu, 20 Oct 2005 05:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Fri, 21 Oct 2005 07:40:13 GMT]]></title><description><![CDATA[<p>'\0' anhängen. Aber schon vor dem Verschlüsseln.</p>
<p>Bye, TGGC (<a href="http://tggc.tg.funpic.de/index.php?cat=4" rel="nofollow">Demo or Die</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897395</guid><dc:creator><![CDATA[TGGC|_work]]></dc:creator><pubDate>Fri, 21 Oct 2005 07:40:13 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Fri, 21 Oct 2005 08:27:33 GMT]]></title><description><![CDATA[<p>Ich hab eine andere BlowFish-Implementierung verwendet,<br />
die dieses Problem nicht hat.<br />
siehe: <a href="http://www.codeas.com/solutions.php" rel="nofollow">http://www.codeas.com/solutions.php</a></p>
<p>cu<br />
Claus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897437</guid><dc:creator><![CDATA[cwanner]]></dc:creator><pubDate>Fri, 21 Oct 2005 08:27:33 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Fri, 21 Oct 2005 09:48:18 GMT]]></title><description><![CDATA[<p>Oder das hier:<br />
<a href="http://www.schneier.com/blowfish-download.html" rel="nofollow">http://www.schneier.com/blowfish-download.html</a></p>
<p>btw, OpenSSL ist übrigens nicht ganz so einfach zu verwenden.</p>
<p>Gruß,<br />
Cosmixx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897558</guid><dc:creator><![CDATA[Cosmixx]]></dc:creator><pubDate>Fri, 21 Oct 2005 09:48:18 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Fri, 21 Oct 2005 11:20:20 GMT]]></title><description><![CDATA[<p>cwanner schrieb:</p>
<blockquote>
<p>ich versuche gerade (bzw. seit ner ganzen weile) ein verschlüsselte Passwort mit BlowFish wieder zu entschlüsseln.<br />
[..]<br />
Mein Problem ist jetzt, dass das Passwort zwischen 4 und 8 Stellen haben kann.<br />
Wenn ich der decrypt-Methode eine 8 mitgebe und das Passwort nur 5 Stellen hat, bekomm ich dass Entschlüsselte Passwort + 3 Zeichen die zufällig im Speicher stehn.</p>
</blockquote>
<p>Sicher, dass es um DEIN Passwort geht, probier halt mal 4, 5, 6, 7 oder 8 zu übergeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897653</guid><dc:creator><![CDATA[Cpt_Future]]></dc:creator><pubDate>Fri, 21 Oct 2005 11:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Thu, 03 Nov 2005 19:08:38 GMT]]></title><description><![CDATA[<p>Das problem ist doch noch nicht gelöst!</p>
<blockquote>
<p>Sicher, dass es um DEIN Passwort geht, probier halt mal 4, 5, 6, 7 oder 8 zu übergeben?</p>
</blockquote>
<p>Es ist natürlich nicht MEIN Passwort, sondern das Passwort eines Anwenders, dessen Passwort verschlüsselt an mich bzw. meine Applikation übertragen wird und ich die Anmeldung am BackEnd-System machen muss.<br />
Um das ganze noch etwas zu verkomplizieren, wird das encryptete Passwort noch mit Base64 encodet. Meine Applikation muss das Passwort also erst Base64 decoden und anschliessend BlowFish decrypten.</p>
<p>Soweit ich das Problem jetzt eingrenzen konnte passiert folgendes:</p>
<p>En-/Decrypting in C++ =&gt; funktioniert ohne Probleme<br />
En-/Decrypting in Java =&gt; funktioniert ohne Probleme<br />
Base64 Encoding + Encrypting auf Java UND Base64 Decoding + Decrypting in C++ =&gt; Problem</p>
<p>Der <em>char</em> wird nicht mit \0 terminiert und da ich nicht weis, wie lange dass Passwort vorher war, habe ich irgend welchen Datenmüll in meinem char stehn. Eine Allokierung des <em>char</em> vor dem Decrypting bringt auch kein Erfolg, da der Blowfish den kompletten char neu beschreibt.</p>
<p>Daher meine Vermutung:<br />
In Java wird der String nicht mit \0 terminiert, bevor dieser Base64 decodiert und decyrpted wird. Somit fehlt der C++-Applikation nach der Base64 Decodierung die Terminierung des <em>char</em> und der Blowfish decyrpted eben bis der <em>char</em> &quot;voll&quot; ist (bei maximal 8 Zeichen).<br />
Da kann man dem alten KugelFisch eigentlich nix vorwerfen, aber ich konnte diese Vermutung noch nicht untermauern und weis im Moment auch noch nicht, wie ich Java dazu bringe den String mit \0 zu terminieren.<br />
Eine Idee wäre, der Passwort-String wird vor dem Decoding und Dycrying in den ein byte-Array (Java-Typ) gecastet, das Byte-Array am Ende mit einem Dezimalwert für \0 zu erweitern (müsste in Dezimal auch 0 sein).</p>
<p>Bin für jede Hilfe und Tipp sehr sehr sehr Dankbar!</p>
<p>Danke &amp; Gruß<br />
Claus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/907643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/907643</guid><dc:creator><![CDATA[cwanner]]></dc:creator><pubDate>Thu, 03 Nov 2005 19:08:38 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Fri, 04 Nov 2005 00:25:27 GMT]]></title><description><![CDATA[<p>Dir ist schon klar, dass n die Größe des Ausgabepuffers ist? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/907761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/907761</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Fri, 04 Nov 2005 00:25:27 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Fri, 04 Nov 2005 10:04:45 GMT]]></title><description><![CDATA[<p>... schrieb:</p>
<blockquote>
<p>Dir ist schon klar, dass n die Größe des Ausgabepuffers ist? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Wie meinst Du das jetzt?</p>
<p>Das Passwort MUSS zwischen 5 und 8 Zeichen lang sein.</p>
<p>Ich hab heute noch folgenden Versuch angestellt.</p>
<p>encrypting und encoding in C++<br />
anschliessend<br />
decoding und decrypting in C++<br />
=&gt; Alles geht wunderbar, der String wird richtig terminiert.</p>
<p>encrypting und encoding in Java<br />
anschliessend<br />
decoding und decrypting in C++<br />
=&gt; der String wird NICHT terminiert</p>
<p>Meine Schlussfolgerung:<br />
Java hat kein \0 und verarbeitet dieses auch nicht vom encrypting und decoding,<br />
somit kann C++ beim Decoding und Decrypting nicht wissen, an welcher Stelle der String aufhört, oder?</p>
<p>Meine &quot;Lösungen&quot;:<br />
1. Ich bekomme die Länge des Passworts übergeben<br />
2. Java muss VOR dem Encrypting ein &quot;\0&quot; anhängen, da dieses von C++ später benötigt wird.</p>
<p>Auf eine andere Lösung bin ich noch nicht gekommen.</p>
<p>Danke &amp; Gruß<br />
Claus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/907969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/907969</guid><dc:creator><![CDATA[cwanner]]></dc:creator><pubDate>Fri, 04 Nov 2005 10:04:45 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Fri, 04 Nov 2005 14:10:16 GMT]]></title><description><![CDATA[<p>er (oder sie^^ (unwarscheinlich)) meint das n nicht die länge des entschlüsselten passwortes ist, sondern die größe des puffers in das dieses reinkommt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/908186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/908186</guid><dc:creator><![CDATA[-*NULL*-]]></dc:creator><pubDate>Fri, 04 Nov 2005 14:10:16 GMT</pubDate></item><item><title><![CDATA[Reply to BlowFish - decrypting on Fri, 04 Nov 2005 15:42:24 GMT]]></title><description><![CDATA[<p>-[NULL]- schrieb:</p>
<blockquote>
<p>er (oder sie^^ (unwarscheinlich)) meint das n nicht die länge des entschlüsselten passwortes ist, sondern die größe des puffers in das dieses reinkommt</p>
</blockquote>
<p>Genau das ist der Hacken an der Sache.<br />
Wenn ich nicht weis wie lange der Buffer ist, kann ich den Buffer auch nicht mit \0 terminieren und habe nach dem eigentlich entschlüsselten Passwort noch irgend welchen Datenmüll stehn.<br />
Eine vorbelegung mit \0 bringt auch nichts, da der Blowfish schon nicht erkennt, an welcher Stelle der String zu Ende ist.</p>
<p>Gruß<br />
Claus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/908253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/908253</guid><dc:creator><![CDATA[cwanner]]></dc:creator><pubDate>Fri, 04 Nov 2005 15:42:24 GMT</pubDate></item></channel></rss>