会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题
Python 全系列/第二十一阶段:Python数据分析项目/音乐推荐系统 1楼
Python 全系列/第二十一阶段:Python数据分析项目/音乐推荐系统 2楼
Python 全系列/第二十一阶段:Python数据分析项目/二手车价格预测 3楼

大家注意这个b64_code,人人车好像每隔一段时间会换一下这个b64_code,然后根据下面这个代码就可以获得车辆价格了

屏幕截图 2024-08-13 200631.png

import base64
from fontTools.ttLib import TTFont


def create_ttf():
    b64_code = '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'

    with open('./font.ttf','wb') as f:
        f.write(base64.decodebytes(b64_code.encode()))

def decode_ttf(ttf_path):
    ttf = TTFont(ttf_path)
   # 输出数字与uni编码之间的关系 元素下标就是数字,元素内容是uni编码
    li = ttf.getGlyphOrder()[1:]
    # 输出uni编码与数字之间的关系,输出类型为字典,特殊字符的acill值:uni编码
    dic = ttf.getBestCmap()

    new_dict = {}
    for k, v in dic.items():
        # chr(k) 转成特殊字符   li.index(v) 找到uni编码所对应的下标(即对应数字)
        new_dict[chr(k)] = li.index(v)
    return new_dict
 
if __name__ == '__main__':
    # 生成ttf文件
    create_ttf()
    # 进行内容解析测试
    ttf_path = './font.ttf'  # 人人车加密价格的TTF字体文件路径
    encrypted_text = '+¥.起'  # 需要解密的加密文本
    decrypted_text = decode_ttf(ttf_path)
    # 输出:人人车价格解密结果
    ans = ''
    for char in encrypted_text:
        if char == '.':
            ans += '.'
        else:
            ans += str(decrypted_text[char])
    print(ans)


Python 全系列/第二十一阶段:Python数据分析项目/二手车价格预测 4楼
Python 全系列/第二十一阶段:Python数据分析项目/二手车价格预测 6楼

这是人人车的价格加密后,进行破解的方法:

import base64
from fontTools.ttLib import TTFont
'''
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
'''

def create_ttf():
    b64_code = 'AAEAAAAOAIAAAwBgT1MvMi9w4T0AAAFoAAAAYGNtYXDE6zKeAAAB6AAAAHRjdnQgAKcBHgAABFQAAAAQZnBnbQZZnDcAAAJcAAABc2dhc3AAAAAQAAAURAAAAAhnbHlmIUeQjQAABHwAAAwcaGVhZBTOym0AAADsAAAANmhoZWEGTAETAAABJAAAACRobXR4B7QBAAAAAcgAAAAebG9jYQ7eEbIAAARkAAAAGG1heHACHAGOAAABSAAAACBuYW1lkYFW/gAAEJgAAAMkcG9zdE5werQAABO8AAAAiHByZXBKotU/AAAD0AAAAIQAAQAAAAEAgzau5zxfDzz1ABsD6AAAAADYv5kdAAAAANnn7fAAAP8vAvgCywAAAAYAAgAAAAAAAAABAAAC7v8GAGQCCAAAAAAC+AABAAAAAAAAAAAAAAAAAAAABAABAAAACwBpAAYAAAAAAAEAAAAAAAoAAAIAASQAAAAAAAQCLgGQAAUABAKKAlgAAABLAooCWAAAAV4AMgAyAAAAAAAAAAAAAAAAAAAAAwiAAAAAAAAAAAAAADU4ICAAwAAAl2IC7v8GAGQC7gD6AAAAAQAAAAAB9AK8AAAAIAACAggAAAHgACkBRgAxAeAAKgApACoAKgApACoAKQApAAAAAAABAAMAAQAAAAwABABoAAAAFgAQAAMABgAlACsALQAvAKVOB1FDYphl9o13//8AAAAlACsALQAvAKVOB1FDYphl9o13////3v/a/9f/2/9jsfuuvp1vmhBykgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgAACxLuAAJUFixAQGOWbgB/4W4AEQduQAJAANfXi24AAEsICBFaUSwAWAtuAACLLgAASohLbgAAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbgABCwgRrAEJUZSWCOKWSBGIGphZLAEJUYgamFkUlgjilkv/S24AAUsSyCwAyZQWFFYsIBEG7BARFkbISEgRbDAUFiwwEQbIVlZLbgABiwgIEVpRLABYCAgRX1pGESwAWAtuAAHLLgABiotuAAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbgAwIqKG4ojWSCwAyZTWCMhuAEAioobiiNZILADJlNYIyG4AUCKihuKI1kguAADJlNYsAMlRbgBgFBYIyG4AYAjIRuwAyVFIyEjIVkbIVlELbgACSxLU1hFRBshIVktALgAACsAugABAAIAAisBugADAAMAAisBvwADADcAMQAmABwAEQAAAAgrvwAEAFsASgA6ACkAGQAAAAgrvwAFAEAAMQAmABwAEQAAAAgrAL8AAQA3ADEAJgAcABEAAAAIK78AAgBAADEAJgAcABEAAAAIKwC6AAYAAQAHK7gAACBFfWkYRAAUAGQAVgBkAD0AVgAAAAAAAAAAAOoBFgGoAngCtgOKBGYEjAUwBg4AAgAp/5wBtwK8AB8APQEkuAAAKwC6AC4AAAADK7oAEAAgAAMrAbgAPi+4ADYvuAA+ELgACNC4AAgvuAAF0LgABS+4AAgQuAAL0LgACy9BBQDaADYA6gA2AAJdQRsACQA2ABkANgApADYAOQA2AEkANgBZADYAaQA2AHkANgCJADYAmQA2AKkANgC5ADYAyQA2AA1duAA2ELgAGNy4ABXQuAAVL7gAGBC4ABvQuAAbL7gACBC4ACbcQRsABgAmABYAJgAmACYANgAmAEYAJgBWACYAZgAmAHYAJgCGACYAlgAmAKYAJgC2ACYAxgAmAA1dQQUA1QAmAOUAJgACXbgAI9C4ACMvuAAmELgAKdC4ACkvuAA2ELgAM9C4ADMvuAA2ELgAOdC4ADkvuAAYELgAP9wwMRciLgInJjQnNDY3PgMzMh4CFxYUFRwBBw4DAyIGBw4BFRYUFxQeAjMyPgI1NjQ1PAEnNC4C8ShHNh8BAgEBAQEfNkcoKEc2HwECAgEfNUYqKDcCAQEBAhAaJBMUIhsPAgIQGiNkHjRHKDRnNDRnNClGNB4eNEYpNGc0NGc0KEc0HgK8OCczZzMzZzMTIxoPDxojEzNnMzNnMxQjGQ8AAAAAAQAx/6wA9wKrAAYANLgAACsAugAAAAEAAyu6AAMAAQAAERI5ugAEAAEAABESOQG6AAEAAgADK7gAARC4AAjcMDETESMRBzU392RiaQKr/QECg0B3RQAAAAEAKv+sAbgCvAAvAKC4AAArALoALQAAAAMrugAeAA8AAysBuAAwL7gADC+4ADAQuAAX0LgAFy+4AADQQQUA2gAMAOoADAACXUEbAAkADAAZAAwAKQAMADkADABJAAwAWQAMAGkADAB5AAwAiQAMAJkADACpAAwAuQAMAMkADAANXbgAFxC4ABbcuAAMELgAI9y4AC7QuAAuL7oALQAXAC4REjm4ACMQuAAx3DAxFzU3PgU3PgE1NCYrASIOAh0BIzU0PgI7ATIeAhUUBgcOBQchFSoJASE0PzswCwgNOSoCFCMaD2QfNUgoAilJNh8SEAkjKzEwKw8BFVRmDQEwS1xYSxQQJRIqOQ8aIhQdHSlHNB8fNkkpID0bETZCSUY+F2QAAAABACn/nAG4ArsATgDOuAAAKwC6ABgACwADK7oAPgAzAAMrugApACYAAysBugATABAAAyu6AEQALwADK7oAIAAvAEQREjm4ACAvQQUA2gAgAOoAIAACXUEbAAkAIAAZACAAKQAgADkAIABJACAAWQAgAGkAIAB5ACAAiQAgAJkAIACpACAAuQAgAMkAIAANXbgAA9y4AADQuAAAL7gAAxC4AAbQuAAGL7gAIBC4AB3QuAAdL7gAIBC4ACPQuAAjL7oAOQAQABMREjm4ADkvuAA23LgAAxC4AFDcMDElFhQVHAEHFA4CIyIuAjUnNxcUHgIzMj4CNTY0NTwBJzQmKwE1MzI+Aj0CNCYjIgYVByM3ND4CMzIeAh0BFA4CBx4BFx4BAbcBAR82SCkoSTYgAWQBEBskFBQjGxABATkpMzISHxcOMiMjMwFkAR4zQyYmQzMdAwwWEwIGAh0esAsTCgoTCihINh8fNUgpJwEnFCQbDxAbIxQJEwoKEwkpOGQNFx8SHR4jMTAkJygmQzIcHTFDJh8ZKickEwIFAxxHAAAAAAEAKv+sAbcCqwAOAEq4AAArALoABwAIAAMruAAHELgAAtC4AAgQuAAM0AG6AAYAAwADK7oAAQADAAYREjm4AAYQuAAJ0LgAAxC4AAvQuAAGELgAENwwMQEzAzM1MxUzFSMVIzUjNQEHbNiGZDIyZPcCq/3curpkd3dVAAABACr/nAG2AqwARQDquAAAKwC6ACAADAADK7oAOgA7AAMrugBBADEAAyu6AD0AMQBBERI5AboAPQA4AAMrugAEACgAAyu4AAQQuAAA0LgAAC+4AAQQuAAH0LgABy+6ABgAOAA9ERI5uAAYL7gAF9y4ABHQuAARL7gAFxC4ABTQuAAUL7gAGBC4ABvQuAAbL0EFANoAKADqACgAAl1BGwAJACgAGQAoACkAKAA5ACgASQAoAFkAKABpACgAeQAoAIkAKACZACgAqQAoALkAKADJACgADV24ACgQuAAl0LgAJS+4ACgQuAAs0LgALC+4AAQQuABH3DAxARYUHQEcAQcOAyMiLgInNCY1JjQ1MxwBFxQeAjMyPgI3NjQ9ATwBJy4DKwEiBgcGBycRIRUjFT4BOwEyHgIBtAICAiE1RScnRTQhAwEBZAENGCQYEyIaEAECAgEQGiITARIfCw4LVwFb9xElEgEnRTUhAQ4XLhcBFy8YJ0IyHBwyQicHCAMICBAOBQUWJx4SDhghExYqFwEXKhUTIBgOCwgICyIBT2SQBwYcMUMAAAAAAgAp/5wBtwKrACoARwDsuAAAKwC6AEMACwADK7oAJgA0AAMrugAjADQAJhESOQG4AEgvuAAsL7gAA9y4AADQuAAAL7gASBC4ABPQuAATL7gAENC4ABAvuAATELgAFdC4ABUvugAcACwAAxESObgALBC4AB/QuAAfL7oAIwATAAMREjm4ACwQuAAv0LgALy+4ABMQuAA73EEbAAYAOwAWADsAJgA7ADYAOwBGADsAVgA7AGYAOwB2ADsAhgA7AJYAOwCmADsAtgA7AMYAOwANXUEFANUAOwDlADsAAl24ADjQuAA4L7gAOxC4AD7QuAA+L7gAAxC4AEncMDElFhQVFA4CBw4BIyIuAicmNDU0Nz4DPwEzDgEPAQ4BBz4BMzIeAgc1PAEnNC4CKwEiBgcOARUcARcUHgIzMj4CAbYBBAwYFBxHJyhINiABAQMDGS9GMA9vBQcFHyU5FQ4jFCU9LRliAQ4YHxEKJzcFAQEBEBskFBQjGhC5DRoNGy8rKBMcHR41RygKEwoaGyBQbZNiHwgSCUBLeTAFBxgsPn4lDBkMEh4WDTInCxULCRIJFCQaDw8aIwAAAAABACr/rAG3AqoACAAiuAAAKwC6AAAABAADKwG6AAYABwADK7oAAwAHAAYREjkwMQEVAyMTIxUjNQG35GrnwmQCqmz9bgKaXsIAAAAAAwAp/5sBtwK8AC4APQBSAFy4AAArALoATgAGAAMrugAeADsAAyu6ADQARAADKwG6AEsACwADK7oAJAA3AAMrugA+ADcAJBESObgAPi+4AADcugAWAAsASxESObgAFi+4ADDcuABLELgASdAwMSUUBgcOASMiLgInNTQ+Ajc2Ny4BNTQ+Ajc+ATMyHgIXFQ4BBx4BFx4DAR0BHgEzMjY3NS4BIyIGEzU0LgIjIgYHBh0CHgEzMj4CAbcUKRxHJylHNh8CAwwYFQMIJhMEDBYTGkIkJUEyHwECHBoCBgIUGA0E/uQCMCMiMAICMCIjMLUQGyMUFCMOHgI4KRQjGxCHNFgnHB0eNUcoKhsvLCgUBAYkTTIZKygkEhkbHDBBJEsjQRkCBQIUKSwwAWUpJCIvLyJOIi8w/jdXFCMbDw8OHCgvKCk3DxojAAIAKf+tAbcCvAAqAEcA8LgAACsAugALAEMAAyu6ADQAJgADK7oAIwAmADQREjkBuABIL7gAOy+4AEgQuAAD0LgAAy+4AADQuAAAL0EFANoAOwDqADsAAl1BGwAJADsAGQA7ACkAOwA5ADsASQA7AFkAOwBpADsAeQA7AIkAOwCZADsAqQA7ALkAOwDJADsADV24ADsQuAAT3LgAENC4ABAvuAATELgAFdC4ABUvuAADELgALNy6ABwAAwAsERI5uAAf0LgAHy+6ACMAAwATERI5uAAsELgAL9C4AC8vuAA7ELgAONC4ADgvuAA7ELgAPtC4AD4vuAATELgASdwwMRMmNDU0PgI3PgEzMh4CFxYUFRQHDgMPASM+AT8BPgE3DgEjIi4CNxUcARcUHgI7ATI2Nz4BNTwBJzQuAiMiDgIqAQQMGBQcRycoSDYgAQEDAxkvRjAPbwUHBR8lORUOIxQlPS0ZYgEOGB8RCic3BQEBARAbJBQUIxoQAZ8NGg0bLysoExwdHjVGKQoTChobIFBtk2IfCBIJQEt5MAUHGCw+fiUMGQwSHhYNMicLFQsJEgkUJBoPDxojAAAAAAAAEwDqAAEAAAAAAAAAOwAAAAEAAAAAAAEABgA7AAEAAAAAAAIABwBBAAEAAAAAAAMAKQBIAAEAAAAAAAQADQBxAAEAAAAAAAUACwB+AAEAAAAAAAYADACJAAEAAAAAAAkACwCVAAEAAAAAAAwAGgCgAAMAAQQJAAAAdgC6AAMAAQQJAAEADAEwAAMAAQQJAAIADgE8AAMAAQQJAAMAUgFKAAMAAQQJAAQAGgGcAAMAAQQJAAUAFgG2AAMAAQQJAAYAGAHMAAMAAQQJAAkAFgHkAAMAAQQJAAwANAH6AAMAAQQJABEADAIuZG9uIDU4IEZvbnQgRGVzaWduIGJ5IEtpZG9vb20gWHUuIDIwMTmpQWxsIFJpZ2h0cyBSZXNlcnZlZC5kb24gNThSZWd1bGFyVmVyc2lvbiAxLjI7NTg7ZG9uNTgtTWVkaXVtOzIwMTk7RkxWSS02MTNkb24gNTggTWVkaXVtVmVyc2lvbiAxLjJkb241OC1NZWRpdW1LaWRvb29tIFh1Lmh0dHA6Ly9raWRvb29tLmxvZnRlci5jb20vAGQAbwBuACAANQA4ACAARgBvAG4AdAAgAEQAZQBzAGkAZwBuACAAYgB5ACAASwBpAGQAbwBvAG8AbQAgAFgAdQAuACAAMgAwADEAOQCpAEEAbABsACAAUgBpAGcAaAB0AHMAIABSAGUAcwBlAHIAdgBlAGQALgBkAG8AbgAgADUAOABSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAxAC4AMgA7ADUAOAA7AGQAbwBuADUAOAAtAE0AZQBkAGkAdQBtADsAMgAwADEAOQA7AEYATABWAEkALQA2ADEAMwBkAG8AbgAgADUAOAAgAE0AZQBkAGkAdQBtAFYAZQByAHMAaQBvAG4AIAAxAC4AMgBkAG8AbgA1ADgALQBNAGUAZABpAHUAbQBLAGkAZABvAG8AbwBtACAAWAB1AC4AaAB0AHQAcAA6AC8ALwBrAGkAZABvAG8AbwBtAC4AbABvAGYAdABlAHIALgBjAG8AbQAvAE0AZQBkAGkAdQBtAAIAAAAAAAD/nAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAQIBAwEEAQUBBgEHAQgBCQEKAQsHdW5pNTE0Mwd1bmk0RTA3B3VuaTAwMjUHdW5pMDAyRAd1bmkwMDJCB3VuaTY1RjYHdW5pNjI5OAd1bmkwMEE1B3VuaThENzcHdW5pMDAyRgABAAH//wAP'

    with open('./font.ttf','wb') as f:
        f.write(base64.decodebytes(b64_code.encode()))

def decode_ttf(ttf_path):
    ttf = TTFont(ttf_path)
   # 输出数字与uni编码之间的关系 元素下标就是数字,元素内容是uni编码
    li = ttf.getGlyphOrder()[1:]
    # 输出uni编码与数字之间的关系,输出类型为字典,特殊字符的acill值:uni编码
    dic = ttf.getBestCmap()

    new_dict = {}
    for k, v in dic.items():
        # chr(k) 转成特殊字符   li.index(v) 找到uni编码所对应的下标(即对应数字)
        new_dict[chr(k)] = li.index(v)
    return new_dict
 
if __name__ == '__main__':
    # 生成ttf文件
    create_ttf()
    # 进行内容解析测试
    ttf_path = './font.ttf'  # 人人车加密价格的TTF字体文件路径
    encrypted_text = '-.%起'  # 需要解密的加密文本
    decrypted_text = decode_ttf(ttf_path)
    # 输出:人人车价格解密结果
    ans = ''
    for char in encrypted_text:
        if char == '.':
            ans += '.'
        else:
            ans += str(decrypted_text[char])
    print(ans)


Python 全系列/第二十一阶段:Python数据分析项目/二手车价格预测 8楼
Python 全系列/第二十一阶段:Python数据分析项目/文本分类-自然语言处理 12楼
Python 全系列/第二十一阶段:Python数据分析项目/二手车价格预测 13楼
Python 全系列/第二十一阶段:Python数据分析项目/文本分类-自然语言处理 14楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637