iconv und md5sum

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
Benutzeravatar
gambi
Moderator
Beiträge: 321
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

iconv und md5sum

Beitrag von gambi » Do 4. Mai 2017, 20:57

Hallo zusammen,
gibt es in Gambas eine Möglichkeit folgendes ohne "Shell" oder "EXEC" umzusetzen:

echo -n gambas | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b

Als Ergebnis sollte 9ebe956b9cc5c2e41e8b5b4ede05b72b *- herauskommen.

gg

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: iconv und md5sum

Beitrag von tux_ » Do 4. Mai 2017, 22:34

Hier ist ein Gambas-Skript, das genau dies tut. (Die Form als Gambas-Skript hat den Vorteil, dass du kein groszes Projektarchiv brauchst und sofort an den USE-Zeilen ersehen kannst, welche Komponenten gebraucht werden.) Die Gambas-Versionen von "iconv" und "md5sum" kannst du am Quelltext leicht ablesen.
gambas code
#!/usr/bin/gbs3

Use "gb.openssl"

Public Sub Main()
  Dim sInput As String = "gambas"

  Print MyHex$(Digest["md5"](Conv$(sInput, "ISO8859-1", "UTF-16LE")))
  Print "---"
  Shell Subst$("echo -n \"&1\" | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b", sInput) Wait
End

Private Function MyHex$(sInput As String) As String
  Dim iByte As Byte, sRes As String = ""

  For Each iByte In Byte[].FromString(sInput)
    sRes &= Hex$(iByte, 2)
  Next
  Return Lower$(sRes)
End
Ausgabe:

Code: Alles auswählen

9ebe956b9cc5c2e41e8b5b4ede05b72b
---
9ebe956b9cc5c2e41e8b5b4ede05b72b *-
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

Benutzeravatar
gambi
Moderator
Beiträge: 321
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: iconv und md5sum

Beitrag von gambi » Fr 5. Mai 2017, 14:45

Hallo tux_,
die Kombination von Digest der openSSL-Komponente und der byteweisen Umwandlung in HEX ist genial :!:
Danke für die Lösung. :D

gg

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste