Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Umwandlung eines Strings nach Byte[]

Empfohlene Antworten

Veröffentlicht

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) )

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

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.

ok danke für die antwort habs jetzt auch mit "Convert::ToBase64String(inArray);" gelöst.

ist das eigentlich normal das die letzten beiden Stellen immer "==" sind ??

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.

ahh ok vielen dank :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.