V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
awolfly9
V2EX  ›  程序员

[求助] 一段 Python 代码

  •  
  •   awolfly9 · 2017-08-18 15:41:35 +08:00 · 2848 次点击
    这是一个创建于 2688 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 V2EX 上看到一个帖子 关于手机号加密 帖子中有加密的密匙,加密前的数据,加密后的数据。但是我用 python 模拟的代码始终没有得到帖子中说的结果。

    特意向各位 Pythonista 求助。

    附原贴中的一下内容:
    第一组数据:
    加密前:15258772433
    加密后:C4AC67A843EED4C5033F1CFC8849B82F
    第二组数据:
    加密前:17078164702
    加密后:E9996B3DA643692A0B44B1E3BC71A563

    加密密匙:aes ecb 加密,密钥 crazycrazycrazy 加一位数字

    请各位如果有兴趣附上加密解密代码。谢谢~

    6 条回复    2017-08-19 07:31:05 +08:00
    awolfly9
        1
    awolfly9  
    OP
       2017-08-18 18:32:32 +08:00
    二百多次点击,没有一个回复 ?
    Patrick95
        2
    Patrick95  
       2017-08-18 20:14:16 +08:00   ❤️ 2
    encrypt:


    from Crypto.Cipher import AES
    import binascii

    BLOCK_SIZE = 16
    pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * \
    chr(BLOCK_SIZE - len(s) % BLOCK_SIZE)
    unpad = lambda s: s[:-ord(s[len(s) - 1:])]

    obj = AES.new('crazycrazycrazy1', AES.MODE_ECB)
    message = pad("15258772433")
    ciphertext = obj.encrypt(message)
    print(binascii.hexlify(ciphertext).upper())
    Patrick95
        3
    Patrick95  
       2017-08-18 20:17:38 +08:00
    用了换行符,排版乱了,重发一下

    from Crypto.Cipher import AES
    import binascii

    BLOCK_SIZE = 16
    pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * chr(BLOCK_SIZE - len(s) % BLOCK_SIZE)
    unpad = lambda s: s[:-ord(s[len(s) - 1:])]

    obj = AES.new('crazycrazycrazy1', AES.MODE_ECB)
    message = pad("17078164702")
    ciphertext = obj.encrypt(message)
    print(binascii.hexlify(ciphertext).upper()) # encrypt

    这是加密过程,解密用 AES decrypt 即可。
    azh7138m
        4
    azh7138m  
       2017-08-18 20:34:06 +08:00   ❤️ 1
    总结下楼上的

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-

    from Crypto.Cipher import AES
    from binascii import b2a_hex

    if __name__ == '__main__':
    cryptor = AES.new('crazycrazycrazy1', AES.MODE_ECB)
    ciphertext = cryptor.encrypt('15258772433' + 5 * chr(5))
    print b2a_hex(ciphertext)
    awolfly9
        5
    awolfly9  
    OP
       2017-08-18 22:09:50 +08:00
    @Patrick95 @azh7138m 感谢已发~
    ossicee
        6
    ossicee  
       2017-08-19 07:31:05 +08:00 via Android
    学习
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3082 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:54 · PVG 18:54 · LAX 02:54 · JFK 05:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.