| 

.NET C# Java Javascript Exception

2
Ich möchte gerne in Python eine String Codieren, dass ich ein reinen Zahlwert erhalte. Änhlich wie Md5.

Bsp: Haus => 12389213095

Hat jemand eine Idee wie Ich das lösen kann?
News:
10.04.2012
FX 437 1 9
3
Generelle Frage: Wofür?
Eiger 11.04.2012
4 Antworten
3
Für python gibt es auch sowas: binascii.crc32
Aber beachte: Weder CRC noch MD5 (und viele andere) sind
- umkehrbar (aus dem Ergebnis den String wiederherstellen)
- eindeutig (verschiedene Strings können dieselbe Checksum haben)
11.04.2012
DaSpors 4,2k 2 8
2
Sowas wie: alle Zeichen durchgehen und die Ascii-Werte addieren?
10.04.2012
LiRo 1,3k 1 9
2
Das eine gute Idee!
FX 10.04.2012
0
def encode_string(input):
return 42


Sorry für diesen nicht ganz ernst gemeinten Vorschlag - aber ohne Angaben, was die Kodierung leisten soll (was es da u.a. zu beachten gibt, hat z.B. DaSpors in seiner Antwort angeführt) und wozu Du das ganze einsetzen willst, ist diese Funktion genauso sinnvoll oder unpassend wie alle anderen.
11.04.2012
Matthias Hlawatsch 13,2k 4 9
hast -leider- recht
LiRo 11.04.2012
Ja, genau. Siehe auch mein Kommentar...
Eiger 11.04.2012
jop, hast deshalb auch nen "pfeil" nach oben von mir bekommen
LiRo 11.04.2012
0
Hi,

du könntest diesen Code verwenden:

import hashlib

def get_hash(string):
hash_object = hashlib.md5(string)
h = hash_object.hexdigest()
h = ''.join([str('1234567890'.find(c)) if c in '1234567890' else str(0) for c in h])
return h

print get_hash('Haus')
print get_hash('Katze')


Der Code leistet NICHT mehr das, was md5 leistet, danach hast du allerdings auch nicht gefragt. Vlt. genügt das schon deinen Ansprüchen? Im Prinzip ersetzt der Code einfach alle Buchstaben im md5-Hash durch 0. In der Regel solltest du damit immer noch mit hoher Wahrscheinlichkeit unterschiedliche Werte für unterschiedliche Strings erhalten. Aber eben nicht mehr so Wahrscheinlich wie bei md5.

PS: Mir ist übrigens klar, dass der Code nicht so schön ist.
29.06.2016
Enuxomulox 21 2

Stelle deine Python-Frage jetzt!