Naja, du verwendest Python 3.x, welches Text in unicode-Objekten speichert, und jerchs Beispiel benötigt 2.x, da dort die Strings noch rohe Bytes sind. Bei erstgenanntem gibt es keine hexadezimale Darstellung. Ich bin nicht ganz ohne Grund den Weg über das Encoding gegangen
Edit: Wenn ich es richtig überblicke, hat sich keiner darüber beschwert, dass du zur Übung die Verschlüsselung selbst implementierst. Für mich hörte sich das in dem Fall mehr nach Motivation an. Ich würde behaupten, dass hier fast jeder RSA schon einmal selbst umgesetzt hat.
String <=> Zahl
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Gut mehr wollte ich nicht hoerenheiliga horsd hat geschrieben:@cofi: Wie gesagt, das ganze wird nicht praktisch eingesetzt.
Du kannst das auch gern veroeffentlichen, auch wenn es schlechter Code sein sollte, er nicht fehlerfrei ist o.ae. Das war hier auch gar nicht die Befuerchtung, sondern: Wenn man Kryptographie einsetzt, will man etwas schuetzen und spaetestens bei fremden Daten sollte man sich nach ueberprueftem Code umschauen.
Das war aber kein Angriff auf deine Faehigkeiten oder das Verbot da weiterzumachen, im Gegenteil (sofern das nicht ernsthaft eingesetzt wird )
Ich wollte nur sicher gehen, dass hinter "Ich bin mir auch bewusst, dass das Ganze nie groß in der Praxis eingesetzt wird" eigentlich ein "ich benutz das nicht, ich schwoers!" steht
P.S. Das Repo setzt man auf _bevor_ man fertig ist
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Ist das Erstellen des Repos nicht eigentlich der erste Schritt nach dem Erstellen des Projektordners...cofi hat geschrieben:P.S. Das Repo setzt man auf _bevor_ man fertig ist
Das Leben ist wie ein Tennisball.
Ich habe das Repo lokal Ich meinte damit eher ein Repo, auf das auch andere in irgendeiner Form Zugriff haben wird es wohl kaum geben...
Daten würde ich mit meinem Script beim besten Willen nicht schützen - es gibt ja schon die fertige Software dafür. Aber meine Gründe warum ich das tue kennt ihr ja schon...
Back to topic:
Ich habe nur trotzdem keine Ahnung, wie ich das in _eine_ hexadezimale Darstellung bringen kann, hab auch in der Doku und bei Google nichts gefunden.
Wäre über einen Link oder Hinweis sehr dankbar!
Gruß HH
Daten würde ich mit meinem Script beim besten Willen nicht schützen - es gibt ja schon die fertige Software dafür. Aber meine Gründe warum ich das tue kennt ihr ja schon...
Back to topic:
Code: Alles auswählen
>>> s.encode('utf-8')
b'Hallo Welt!'
>>> for i in s.encode('utf-8'):
... print(i)
...
72
97
108
108
111
32
87
101
108
116
33
Wäre über einen Link oder Hinweis sehr dankbar!
Gruß HH
Code: Alles auswählen
>>> s = "spam, ham and eggs".encode("utf-8")
>>> l = len(s)
>>> integer = sum(v<<8*i for (i, v) in enumerate(s))
>>> integer
10053099401507827668789273780417579937001587
>>> binary = bytes((integer>>8*i) & 255 for i in range(l))
>>> binary
b'spam, ham and eggs'
>>> binary.decode("utf-8")
'spam, ham and eggs'
Das Leben ist wie ein Tennisball.
EyDu hat geschrieben:Code: Alles auswählen
>>> s = "spam, ham and eggs".encode("utf-8") >>> l = len(s) >>> integer = sum(v<<8*i for (i, v) in enumerate(s)) >>> integer 10053099401507827668789273780417579937001587 >>> binary = bytes((integer>>8*i) & 255 for i in range(l)) >>> binary b'spam, ham and eggs' >>> binary.decode("utf-8") 'spam, ham and eggs'
OK, da wäre ich wirklich beim Besten Willen nicht drauf gekommen.... Funktioniert Wunderbar! Vielen Vielen Dank!
Gruß HH