在 V2EX 上看到一个帖子 关于手机号加密 帖子中有加密的密匙,加密前的数据,加密后的数据。但是我用 python 模拟的代码始终没有得到帖子中说的结果。
特意向各位 Pythonista 求助。
附原贴中的一下内容:
第一组数据:
加密前:15258772433
加密后:C4AC67A843EED4C5033F1CFC8849B82F
第二组数据:
加密前:17078164702
加密后:E9996B3DA643692A0B44B1E3BC71A563
加密密匙:aes ecb 加密,密钥 crazycrazycrazy 加一位数字
请各位如果有兴趣附上加密解密代码。谢谢~
1
awolfly9 OP 二百多次点击,没有一个回复 ?
|
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()) |
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 即可。 |
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) |
6
ossicee 2017-08-19 07:31:05 +08:00 via Android
学习
|