Salut, je viens de commencer à apprendre Python mais je suis en quelque sorte coincé en ce moment.
J'ai un hash.txt
fichier contenant des milliers de hachages de logiciels malveillants dans MD5, Sha1 et Sha5 respectivement séparés par des délimiteurs dans chaque ligne. Voici 2 exemples de lignes que j'ai extraites du fichier .txt.
416d76b8811b0ddae2fdad8f4721ddbe | d4f656ee006e248f2f3a8a93a8aec5868788b927 | 12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f 56a99a4205a4d6cab2dcae414a5670fd | 612aeeeaa8aa432a7b96202847169ecae56b07ee | d17de7ca4c8f24ff49314f0f342dbe9243b10e9f3558c6193e2fd6bccb1be6d2
Mon intention est d'afficher les 32 premiers caractères (hachage MD5) afin que la sortie ressemble à ceci:
416d76b8811b0ddae2fdad8f4721ddbe 56a99a4205a4d6cab2dcae414a5670fd
Des idées?
la source
the_string[:32]
.split()
et les.strip()
chaînes de caractères. Par exemple,md5, sha1, sha5 = line.strip().split("|")
fait à peu près ce que vous devinez.Réponses:
Vous pouvez `` découper '' un
string
très facilement, comme vous tireriez des éléments d'unlist
:a_string = 'This is a string'
Pour obtenir les 4 premières lettres:
first_four_letters = a_string[:4] >>> 'This'
Ou les 5 derniers:
last_five_letters = a_string[-5:] >>> 'string'
Donc, en appliquant cette logique à votre problème:
the_string = '416d76b8811b0ddae2fdad8f4721ddbe|d4f656ee006e248f2f3a8a93a8aec5868788b927|12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f ' first_32_chars = the_string[:32] >>> 416d76b8811b0ddae2fdad8f4721ddbe
la source
the_string.split('|', 1)[0]
.Puisqu'il y a un délimiteur, vous devriez l'utiliser au lieu de vous soucier de la longueur du md5.
>>> s = "416d76b8811b0ddae2fdad8f4721ddbe|d4f656ee006e248f2f3a8a93a8aec5868788b927|12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f" >>> md5sum, delim, rest = s.partition('|') >>> md5sum '416d76b8811b0ddae2fdad8f4721ddbe'
Alternativement
>>> md5sum, sha1sum, sha5sum = s.split('|') >>> md5sum '416d76b8811b0ddae2fdad8f4721ddbe' >>> sha1sum 'd4f656ee006e248f2f3a8a93a8aec5868788b927' >>> sha5sum '12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f'
la source
Si vous voulez les 2 premières lettres et les 2 dernières lettres d'une chaîne, vous pouvez utiliser le code suivant:
name = "India" name[0:2]="In" names[-2:]="ia"
la source