Maison  >  Questions et réponses  >  le corps du texte

python 用md5生成16位长度字符串,求解

python 用md5生成16位长度字符串,求解

阿神阿神2740 Il y a quelques jours1762

répondre à tous(3)je répondrai

  • 迷茫

    迷茫2017-04-18 09:42:58

    Deux méthodes :

    1. Aléatoire (pour être précis, il s'agit simplement d'une fonction qui génère aléatoirement un mélange de lettres et de chiffres de n'importe quelle longueur)

    import random
    import string
    
    def id_generator(size=16, chars=string.ascii_letters + string.digits):
        return ''.join(random.choice(chars) for _ in range(size))
    
    print(id_generator())
    # 结果 nrICjdPKnxZdp4tI (每次都不同)
    

    2. md5 (cela devrait être le résultat que vous souhaitez)

    # Python 2.x
    import hashlib
    print hashlib.md5("fuck gfw").hexdigest()[8:-8]
    
    # Python 3.x
    import hashlib
    print(hashlib.md5("fuck gfw".encode('utf-8')).hexdigest())[8:-8]
    

    Pièce jointe : La différence entre le cryptage MD5 16 bits et le cryptage MD5 32 bits

    Le cryptage MD5 est généralement un codage sur 32 bits. En fait, il n'a parfois besoin que de 16 bits, donc comme vous pouvez le voir, une étape supplémentaire est nécessaire pour prendre les 16 bits du milieu. le meilleur

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:42:58

    import hashlib
    
    data =  'This a md5 test!'
    hash_md5 = hashlib.md5(data)
    
    hash_md5.hexdigest() # 按16位输出
    

    Résultat de sortie 'fdedaafb043d41ff06b6ef249ef53be9'

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:42:58

    Le moyen le plus simple devrait être :

    >>> import hashlib
    >>> hashlib.md5("test").digest()
    "\t\x8fk\xcdF!\xd3s\xca\xdeN\x83&'\xb4\xf6"

    De cette façon, un MD5 de 128 bits (16 bits) est obtenu. Mais ce n'est pas intuitif, j'utilise habituellement le format hexadécimal :

    .
    >>> hashlib.md5("test").hexdigest()
    '098f6bcd4621d373cade4e832627b4f6'

    répondre
    0
  • Annulerrépondre