def get_track_cipher(self, track_id):
""" Get track-specific cipher from `track_id` """
track_md5 = get_md5(str(track_id).lstrip('-'))
key_parts = map(lambda v: array('B', v), ('g4el58wc0zvf9na1', track_md5[:16], track_md5[16:]))
blowfish_key = b''.join(chr(reduce(xor, x)) for x in zip(*key_parts))
IV = pack('B' * 8, *range(8))
def track_cipher():
return Blowfish.new(blowfish_key, mode=Blowfish.MODE_CBC, IV=IV)
return track_cipher
评论列表
文章目录