[求助] 一段 Python 代码

2017-08-18 15:41:35 +08:00
 awolfly9

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

特意向各位 Pythonista 求助。

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

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

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

2776 次点击
所在节点    程序员
6 条回复
awolfly9
2017-08-18 18:32:32 +08:00
二百多次点击,没有一个回复 ?
Patrick95
2017-08-18 20:14:16 +08:00
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
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
2017-08-18 20:34:06 +08:00
总结下楼上的

#!/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
2017-08-18 22:09:50 +08:00
@Patrick95 @azh7138m 感谢已发~
ossicee
2017-08-19 07:31:05 +08:00
学习

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/383973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX