Zum Inhalt springen

Umwandlung eines Strings nach Byte[]


posthorn

Empfohlene Beiträge

Hallo ich arbeite mich gerade in .net c++ ein und bin in meinem buch über einen kurzen Hinweis der System.Security.Cryptography gestossen und finde diese klasse sehr interresant nun versuche ich diese klasse anzuwenden genauer gesagt die sha512 managedklasse und dafür muß ich nun mein string in ein byte array umwandeln jedoch steht leider in meinem schlauen buch nichts dadrüber wie ich das machen kann. könnte mir jemand bitte weiterhelfen ?? danke

(link zur klasse

HashAlgorithm.ComputeHash-Methode (System.Security.Cryptography) )

Link zu diesem Kommentar
Auf anderen Seiten teilen

da ich irgendwie den oberen beitrag nicht editieren kann muß ich leider einen Post darunter setzen.

das Umwandeln in ein Byte array habe ich jetzt doch hinbekommen allerdings macht mir das zurückwandeln Probleme ich bekomme immer nur raus das es sich um ein "System::Byte[]" handelt.

dieses wandele ich mit "wandelbuffer=(gcnew UnicodeEncoding)->GetString(inArray);" wieder zurück. nur werden mir dann nur japanische Schriftzeichen angezeigt. Wie kann ich denn daraus wieder einen ganz normalen Text machen das meinetwegen aus "test" -> "i3j4r3h2uuhfd32irh4329rfw98h34r7" wird ??

kann mir evtl jemand weiterhelfen ??

			SHA512^ shaM = gcnew SHA512Managed;

			array<Byte> ^inArray = (gcnew UnicodeEncoding)->GetBytes(textBox1->Text);

			String ^wandelbuffer;

			wandelbuffer=textBox1->Text;

			label1->Text=wandelbuffer;			

			inArray=shaM->ComputeHash(inArray);

			wandelbuffer=System::Convert::ToString(inArray);

			label1->Text=wandelbuffer;

Bearbeitet von posthorn
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie kann ich denn daraus wieder einen ganz normalen Text machen das meinetwegen aus "test" -> "i3j4r3h2uuhfd32irh4329rfw98h34r7" wird ??
Warum willst du das als Text haben? Ein Bytearray ist kein Text.

Es gibt gewissen Vorschriften, wie man Bytefolgen als Text interpretieren kann, das sind dann Zeichencodierungen. Welcher Text dabei herauskommt, kommt auf die gewählte Codierung an. Was bei Unicode herauskommt, hast du ja gesehen.

Andere Codierungen, wie z.B. UTF8, sind möglicherweise für dein Bytearray gar nicht gültig, weil die Bytefolge gewisse Regeln erfüllen muss.

Wenn du sichergehen willst, dass dabei nur druckbare ASCII-Zeichen herauskommen, könntest du Base64 benutzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ist das eigentlich normal das die letzten beiden Stellen immer "==" sind ??
Das kommt auf die Länge der Daten an. Bei Base64 werden 3 Bytes in genau 4 Zeichen codiert. Jedes Zeichen trägt 6 Bit Information. Wenn die Anzahl der Bytes nicht durch drei teilbar ist, wird mit Nullbits aufgefüllt. Zeichen, die nur diese Füllbits repräsentieren, werden als = dargestellt, um sie von Daten-Nullbits unterscheiden zu können. Ein Base64-String kann auf 0, 1 oder 2 Gleichheitszeichen enden.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...