开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 131|回复: 2
收起左侧

[易语言] SHA-512与AES-CBC共加密的,如何解密?

[复制链接]
结帖率:89% (31/35)
发表于 昨天 16:31 | 显示全部楼层 |阅读模式   河北省石家庄市
20精币
AI 给的解法
根据您提供的链接和返回的JSON数据,我来为您解析这个qAAB格式的加密逻辑,并说明在易语言中如何实现。
核心解密逻辑分析
您提供的链接中,key_seed参数与JSON响应体顶层的key_seed字段值相同,均为 quBf94c5gV0FuWEjssrbSAA9QZgE1BKpadpXYNOvOXQ=。
JSON中main_url和backup_url_1的值均以qAAB开头,这确实是一种自定义的加密格式。根据您之前提到的信息,其解密流程是确定的:
  • 密钥派生:使用key_seed进行SHA-512哈希运算,得到一个64字节的散列值。
  • 提取Key和IV:从SHA-512结果中提取AES-CBC所需的密钥和初始化向量(IV)。根据常见的实现模式,很可能是取前32字节作为AES-256密钥,接下来的16字节作为IV。
  • Base64解码:将qAAB开头之后的部分(即去掉qAAB前缀)进行标准Base64解码,得到密文数据。
  • AES-CBC解密:使用上一步得到的Key和IV,对密文进行AES-CBC模式解密(通常使用PKCS#7填充)。
  • 获取真实URL:解密后的明文数据即为真实的CDN视频地址。

    易语言好像没有 SHA-512 是不是需要DLL 或者PY吗?

    下面 是 json 的原内容, 谁会这2个解密,帮忙, 验证一下 AI 说的是不是正确的,能不能 得到 真实URL



{"video_info":{"data":{"status":10,"message":"success","enable_ssl":true,"auto_definition":"360p","enable_adaptive":false,"video_id":"v0369cg10004d9ctu327dld73tride70","video_duration":10.08,"media_type":"video","url_expire":1784279113,"video_list":{"video_1":{"definition":"720p","quality":"normal","vtype":"mp4","vwidth":720,"vheight":1280,"bitrate":2479230,"real_bitrate":2479230,"fps":24,"float_fps":24,"codec_type":"h264","size":3123831,"main_url":"qAABACqvI5kfR55X+f7tVqe1fgeTXd8t2RtQSg8Wn9ZChR3UTEQ/tiqFbUVRRqEy5Lc3up/H1aTlzXdef6vAaGfVE+uUY3bhtokGvkjvZViDF1a52jf7QXTdOtwOn6gHkhlZPNWXbFje3zW9uP2fSrNX4MSWz+B0DildnWIpYDfN3Yj2jkEm+cEhn401DFOpgGMeoRpM+xQmCKRdiVAqxj2afU35SuLXcMmBqJC7leYSxmYMQPmZhx9Yjn/xfT/COtbJHv/DcFXeDuagHChB7FXKV49jlCd+QOuH/zZPRpe2gCBLOwTinql4f1nbZZ9QeqNmXYjhRfJ96ffji6Z1ifQIqPD8bWHIYPBLQ7pz3rBtc/1JgOmaOd7Y2gAuzFsCpB1t53PLvMxIeUXs5Gkqvh/nH+w0r7ZkZ4vq20V+B/QnzVTEahM/Y8RX4qXXlaXEijZEZp445LPQc9rTCSU6GWBBGirVoUokQ8iP7HWUInO98MmS2hPLoAdAXlDQdfoUy2hAOmjEhA4BKWeF1yvr/CYkUnryIHPajGx/hetmaLmKNaI9oIAlMNPOIHoNOgVybGVbhwmQm5VhZiwqW0TGdWO/lO5RS4NZw9OMg6GLpJglwAAF7Y1Xelo93CqBOVM4LL0xOJt7UBDU18XKYmyNmX+DcgcHgHHN5hK3qnFdgFqOl3pUO0tizJ1lGuF33Lf2CGVFweAr2o1fs7fWaMTQ7W7uMBFxROrOQlM6X4b22LAv5O4P","backup_url_1":"qAABANzeJ7ZGrgob91G43Yt/LwuH0ktPAxjKuP1LaDhO47E+ZKfJ/m8I4GFkEDZLCChM+r8589cPdgScJVCm5yHv6g1mt4i3siHJDxcE0igpIDXxPbXoJ/Tr/1ibPh72wiRZdZ3cXZHivLLX4PP2CP3v3kDaDJtIhB85fkfu019iaeh6U+429MpCr20n1GirxzQWJpPnYNZxfSoQnkhNmTLd0jF344hHD3eN2WBqCoPO/P5ZLYP+YCDYThDklB9KoTBtl3hps6shwtVfP3o5EKL9GmC/lh+kTy0v/IkCkIi1JpXQuRV42YCGF2Kyb9wzkwgZbtozqAIg+nVCKR5y7Okme90w3nJeTTso0AjUTTJ63yo+ysTmb2YpT8u+65UNL8f4UyBrSFsm5jeXVC6nAUdbXVfAkFwCygbk14w0HqR9Xm9K/4g4uGD7J4moId/iacDLEpe0DXl4FIS9nXQGO/GsYYvBS1I7I5MPoj0e9edpUEiaY8COItLh1XXDdGPcz5Y4krHFDwVUP8S8fKX5M9Bq76QOtqQvpxjgRcmQPwAxLsUHqSC6eHE2NB73AcSPb4LGhJ47ZPqsVi+YbCxVzv+fRUWCDfP8FksVTcEURPviM2oLehHSMon9hVk6tOle0FPHbB3tGngmaYiKSuznvriVNKfA5bYLki7r6ciauLSHPZFUu1PKSSlLU14BOyM2fS1v0/4GM1dVRmJbFRkk2v2Ei9j48oui8NYLm9swVbsFUcKO","file_id":"5598103e747d4c1fbefce5d76023d719","quality_type":10,"encryption_method":"","audio_channels":"2.0","audio_layout":"L R","feature_id":"e38567d78da7ae34faf3833d9e13c66f","audio_profile":"aac_lc","gear_des_key":"0:MP4|1:normal|2:h264|3:video_gen_watermark_dyn|4:720p|5:normal|10000:105","audio_sample_rate":"44100","audio_bitrate_target":128,"logo_type":"video_gen_watermark_dyn","url_expire":1784279113,"user_video_proxy":1,"socket_buffer":55782540,"preload_size":327680,"preload_interval":60,"preload_min_step":5,"preload_max_step":10,"file_hash":"b98744740799fc3aabff01535def8ce3","p2p_verify_url":"","check_info":"c:0-9097-e66c|d:0-1561914-a642,1561915-3123830-6bc0","encrypt":false,"spade_a":"","kid":"","barrage_mask_url":"","barrage_mask_offset":""},"video_2":{"definition":"1080p","quality":"normal","vtype":"mp4","vwidth":720,"vheight":1280,"bitrate":1425786,"real_bitrate":1425786,"fps":24,"float_fps":24,"codec_type":"bytevc1","size":1796491,"main_url":"qAABACqvI5kfR55X+f7tVqe1fgcRgJ9e0xUzEbCvwJkiHRsl/1JzW+dKp60lGtScY8OtMsBpKdZqwD6tYBSnmDMdqM8xzO6G5oErcHbr18IgrBpL8Jbek+Pz/upT1eWDG488Djq2zC5ZUUYwju9C8hy2l7FXyj0t75NaQkRrs7x3FlONQ+eaf40P1lvu15BDcFH9iardoh0O3udcuXkfgW+jf+mCTN0q6HOOapDPAwomIJWE8gdMZIJFUg2ZijFIQ7XZI/YvIG77ONMSsfJARh4Q68f737DxbZtSgogjdLkZpA1VgacrOxbLHA1yoZ+/qF0+UoEh/ul7VrUFUUM23P1RwOzvrsQwPUwjp631v4R1/RNANVmNqsXIJs7Lkx3vNjAv1aT6yYS9QlrmVgj4CSm3OosxW3da97TQ5ujgs9SdKGErk/SWBc7eBUUzfAf2bijbth3V3oX37WbqXVDjm18MlWkO9sc5bevw7+1ZYipFwczI6Zf4gd/90NJJXvDZWC/yy1u5VAIms4CQMQBkcQykaUsEHseOIrM9gMZcf16Dx2f390MLe2tYi16haEX48ttY3eWnABDF6hk5ZZzJ9qXuwOgKdmAjR9X4zErickVv62yHZv7ADET7Lkf2+NLDAA8qm0LnsgDIsmmhy8xirfF8IlHrMuzEqC5tAMGm6LMKb1ZVgYU2cYntXXYK3WqmDYr9d50YB2T1Z9Tyn7j4HGeG9e6N1o9NWiVg993KVRyMvL4m","backup_url_1":"qAABANzeJ7ZGrgob91G43Yt/Lwuz67y3LAJQw+eODK03Cjtp9TWV3bOJwISlF7mZjmow9ExcG8FDXiIBvtxkhwNR0Db4cE+j6Eg7+CpU0r9Bj3vkSGOBxIUcqUpsi9N59gSi9lBLGz2ndmlQydV5bjE39HWMktWwZLqufPXe2prUj1slF68dyNJJ+wGwKZ7Afi4xkD+LnT2dAgUWHNwTj5e0L+AvBJwInpjiim7oja5uFuD3Mt7NPmYvwtpi0ZAV9UZJYZUpcawbSdm3+CcwmNya1TAygiFZmhYjkYhncTYxJ1YkFtW57/9YULDfJ0N4ARZdZZt3CHx+5+L1KGxNiIoa688+GXSR98UIW2TH+Kd2clgPlMlOBAXBGZ9el+EzfA4XFQgWJ73Jqgbd1FqbxUOAlINRNqlX6J0eefhoRHU/Y+0XLhosXRXi6QtAIapYTP4im9uosaWy9smmzHb0nSjBmSVZkyRyuTOgpAzNcNsp36R0vVp6EKnPoA3ZWR6UH6bsN3xJaFkKH7AA1/9NPp+PhHhrjLAGp+fCMBZCgcbbQW4VGORqFP8EKPCVscFYQHmjEJjT938e1preZZ0+Ax6u9xxA/mERyeGzrMh74M1r5mN8ImSwkqggV2t9VYf2Ck3xNXJJOee9qh2ocElrlxQZEhPXxGsr8lu2cRO2v4Wy/s6+MT7ir+b7XqQo8uDKz0oFVrjx9s1ZDZZwV9b7EQOrjCiRysA0dEj2mkuldKwpfcGK","file_id":"bbd4bcb758014da2b53e281bb16ddf0a","quality_type":1,"encryption_method":"","audio_channels":"2.0","audio_layout":"L R","feature_id":"069767e0b4f5d9d87fcf68b96cd224a7","audio_profile":"aac_lc","gear_des_key":"0:MP4|1:normal|2:h265_hvc1|3:video_gen_watermark_dyn|4:1080p|5:normal|10000:105","audio_sample_rate":"44100","audio_bitrate_target":128,"logo_type":"video_gen_watermark_dyn","url_expire":1784279113,"user_video_proxy":1,"socket_buffer":32080140,"preload_size":327680,"preload_interval":60,"preload_min_step":5,"preload_max_step":10,"file_hash":"cc6cd33f8401d45da75aa86363e3b824","p2p_verify_url":"","check_info":"c:0-9556-62e1|d:0-898244-b0ff,898245-1796490-d286","encrypt":false,"spade_a":"","kid":"","barrage_mask_url":"","barrage_mask_offset":""}},"popularity_level":0,"has_embedded_subtitle":false,"user_id":"","validate":"","poster_url":"https://p9-sign.douyinpic.com/tos-cn-p-9ecd54/oUE83ODhLAgWcdOEAImRnkI1uHfQw1u3t04Zdl~tplv-noop.image?dy_q=1784275503\u0026l=202607171605034A01E93C4458B3F75C8B\u0026x-expires=1784279113\u0026x-signature=aOjnxMTx2ZPtKYnaFXDcHBGNuuw%3D","key_seed":"quBf94c5gV0FuWEjssrbSAA9QZgE1BKpadpXYNOvOXQ=","optimal_decoding_mode":""},"message":"success","code":0,"total":2},"message":"success","code":0}


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值

签到天数: 17 天

发表于 昨天 16:54 | 显示全部楼层   山西省运城市
SHA-512易语言自带不支持,手动实现或用现成DLL(比如openssl)。AES-CBC同样。写个易语言步骤:

1. 取key_seed值,base64解码得到32字节。
2. 对这32字节做SHA-512(用精易模块或自己写),得到64字节。
3. 取前32字节为AES密钥,第33-48字节为IV(共16字节)。
4. 去掉main_url的“qAAB”前缀,剩余部分base64解码得密文。
5. AES-CBC解密(PKCS7填充,可用精易模块的“对称加密”命令,算法选#AES_256_CBC,填充方式选#填充方式_PKCS7)。

例子伪代码:
.版本 2
.局部变量 key_seed, 字节集
.局部变量 sha512结果, 字节集
.局部变量 aes密钥, 字节集
.局部变量 iv, 字节集
.局部变量 密文, 字节集
.局部变量 明文, 字节集

key_seed = 编码_BASE64解码 (“quBf94c5gV0FuWEjssrbSAA9QZgE1BKpadpXYNOvOXQ=”)
sha512结果 = 校验_SHA512 (key_seed)  ’ 需自备SHA512函数,精易模块无此命令,可用HASH模块或自己实现
aes密钥 = 取字节集中间 (sha512结果, 1, 32)
iv = 取字节集中间 (sha512结果, 33, 16)
密文 = 编码_BASE64解码 (子文本替换 (main_url, “qAAB”, “”, , , 真))
明文 = 对称解密 (密文, aes密钥, iv, #算法_AES_256_CBC, #数据填充_PKCS7)

如果精易模块没SHA512,自己手写:网上一搜很多易语言源码,或调用“shasum.dll”等。不想折腾直接抄现成代码,几分钟搞定。
回复

使用道具 举报

结帖率:100% (5/5)

签到天数: 18 天

发表于 昨天 20:15 | 显示全部楼层   河南省平顶山市
AI一本正经的胡扯八道
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表