
sha256,那么点播密钥派发服务会使用对称密钥对内容密钥进行加密。sha256,那么 APP 终端需使用对称密钥对获取到的密钥信息进行解密,才能得到内容密钥,并实现视频的解密和播放。{"alg": "HS256","typ": "JWT"}
{"type": "DrmToken","appId": 1500014561,"fileId": "387702307091793695","currentTimeStamp": 1650964374,"expireTimeStamp": 2147483647,"random": 4220003655,"protectSchema": "sha256","issuer": "client"}
参数名 | 类型 | 是否必填 | 描述 |
type | string | 是 | token 类型。填写 DrmToken。 |
appId | int64 | 是 | AppId。 |
fileId | string | 是 | 文件Id。 |
issuer | string | 是 | 签发者。固定填写为 client。 |
currentTimeStamp | int64 | 是 | 当前 Unix 时间戳。 |
expireTimeStamp | int64 | 否 | 过期 Unix 时间戳。不填代表不过期。 |
random | int64 | 否 | 随机数。 |
protectSchema | string | 否 | 保护模式,仅对 SimpleAES 生效。取值有 sha256,表示使用 sha256(pkey) 作为对称密钥加密内容密钥,其中pkey是播放密钥,sha256是 SHA256 哈希算法。 |
Signature = HMACSHA256(base64UrlEncode(Header) + "." + base64UrlEncode(Payload), pkey)
Header 内容为:{"alg": "HS256","typ": "JWT"}
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9。PayLoad 为:{"type": "DrmToken","appId": 1500014561,"fileId": "387702307091793695","currentTimeStamp": 1650964374,"expireTimeStamp": 2147483647,"random": 4220003655,"protectSchema": "sha256","issuer": "client"}
eyJ0eXBlIjoiRHJtVG9rZW4iLCJhcHBJZCI6MTUwMDAxNDU2MSwiZmlsZUlkIjoiMzg3NzAyMzA3MDkxNzkzNjk1IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDk2NDM3NCwiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3LCJyYW5kb20iOjQyMjAwMDM2NTUsInByb3RlY3RTY2hlbWEiOiJzaGEyNTYiLCJpc3N1ZXIiOiJjbGllbnQifQ。Signature 使用 pkey (假设为JduzsUuRvGVPRHvIYwLv)加密后为 dK42jB0KP4sXCd7Dunng9AcQ2WlnANuB87PwxmTc3_g。Header、PayLoad、Signature 通过~拼接后,DrmToken 则为eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9~eyJ0eXBlIjoiRHJtVG9rZW4iLCJhcHBJZCI6MTUwMDAxNDU2MSwiZmlsZUlkIjoiMzg3NzAyMzA3MDkxNzkzNjk1IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDk2NDM3NCwiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3LCJyYW5kb20iOjQyMjAwMDM2NTUsInByb3RlY3RTY2hlbWEiOiJzaGEyNTYiLCJpc3N1ZXIiOiJjbGllbnQifQ~JZ0sAV214-7vNckjb-llSntnqsIr-qF5oD4Lv7L1qGQ。MediaInfoSet.AdaptiveDynamicStreamingInfo.AdaptiveDynamicStreamingSet.Url 字段。SimpleAES,需要按照以下方式构造播放 URL:http(s)://xxx.com/xxx/xxx/test.m3u8http(s)://xxx.com/xxx/xxx/voddrm.token.<DrmToken>.test.m3u8voddrm.token. 前缀,<DrmToken> 则使用上述生成的 DrmToken填充。 https://1500014561.vod2.myqcloud.com/4395be81vodtranscq1500014561/8f8e01fb387702307091793695/adp.12.m3u8?t=9ee2bdd0&sign=46f6120466d6e931ad792bad8e4f8dff DrmToken 为:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9~eyJ0eXBlIjoiRHJtVG9rZW4iLCJhcHBJZCI6MTUwMDAxNDU2MSwiZmlsZUlkIjoiMzg3NzAyMzA3MDkxNzkzNjk1IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDk2NDM3NCwiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3LCJyYW5kb20iOjQyMjAwMDM2NTUsInByb3RlY3RTY2hlbWEiOiJzaGEyNTYiLCJpc3N1ZXIiOiJjbGllbnQifQ~JZ0sAV214-7vNckjb-llSntnqsIr-qF5oD4Lv7L1qGQhttps://1500014561.vod2.myqcloud.com/4395be81vodtranscq1500014561/8f8e01fb387702307091793695/voddrm.token.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9~eyJ0eXBlIjoiRHJtVG9rZW4iLCJhcHBJZCI6MTUwMDAxNDU2MSwiZmlsZUlkIjoiMzg3NzAyMzA3MDkxNzkzNjk1IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDk2NDM3NCwiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3LCJyYW5kb20iOjQyMjAwMDM2NTUsInByb3RlY3RTY2hlbWEiOiJzaGEyNTYiLCJpc3N1ZXIiOiJjbGllbnQifQ~JZ0sAV214-7vNckjb-llSntnqsIr-qF5oD4Lv7L1qGQ.adp.12.m3u8?t=9ee2bdd0&sign=46f6120466d6e931ad792bad8e4f8dffCipherContentKey)的请求,该请求 URL 由m3u8文件中的#EXT-X-KEY指定。如:#EXT-X-KEY:METHOD=AES-128,URI="https://drm.vod2.myqcloud.com/getlicense/v1?drmType=SimpleAES&token=<DrmToken>"
SymmetricKey):SymmetricKey=SHA256(pkey)SHA256 表示 SHA256 哈希算法,pkey表示播放密钥。ContentKey):ContentKey=AES-CBC-Descrypt(CipherContentKey, SymmetricKey, IV)CipherContentKey为内容密钥密文,由点播密钥派发服务返回,密文中不包含初始向量 IV 的数据。AES-CBC-Descrypt表示采用 AES-CBC 算法进行解密,IV 为初始向量,固定为0x00000000000000000000000000000000。pkey)为JduzsUuRvGVPRHvIYwLv,那么对称密钥(SymmetricKey)为0xece0bae38fbbd66f79c62acefb9ea994dc834d79b45cc4556962d9f00508b9b3 (32 Bytes)。CipherContentKey)为 0x68addf7984478a3e4797d3a13ecbb6fb (16 Bytes)。 0x00000000000000000000000000000000(16 Bytes)。ContentKey)为0xbed3747b8510b040826163c04956a4c1(16 Bytes)。文档反馈