320/flac now epically bacc?!?!?!?1?1
This commit is contained in:
parent
90f3d6bf4e
commit
a92876194a
5 changed files with 61 additions and 42 deletions
13
src/lib.rs
13
src/lib.rs
|
@ -1,13 +1,14 @@
|
|||
use wasm_bindgen::prelude::*;
|
||||
|
||||
use blowfish::Blowfish;
|
||||
use aes::Aes128;
|
||||
use aes::{Aes128, Aes256};
|
||||
use block_modes::{BlockMode, Cbc, Ecb};
|
||||
use block_modes::block_padding::{NoPadding, ZeroPadding};
|
||||
use md5::{Md5, Digest};
|
||||
|
||||
type BfCbc = Cbc<Blowfish, NoPadding>;
|
||||
type Aes128Ecb = Ecb<Aes128, ZeroPadding>;
|
||||
type Aes256Ecb = Ecb<Aes256, ZeroPadding>;
|
||||
|
||||
const TRACK_CDN_KEY: [u8; 16] = [106, 111, 54, 97, 101, 121, 54, 104, 97, 105, 100, 50, 84, 101, 105, 104];
|
||||
const BF_SECRET: [u8; 16] = [103, 52, 101, 108, 53, 56, 119, 99, 48, 122, 118, 102, 57, 110, 97, 49];
|
||||
|
@ -36,7 +37,7 @@ impl Cipher {
|
|||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn stream_url(md5_origin: &str, format: &str, id: &str, media_version: u8) -> String {
|
||||
pub fn legacy_stream_url(md5_origin: &str, format: &str, id: &str, media_version: u8) -> String {
|
||||
// md5 origin + format num + id + media version
|
||||
let metadata = [
|
||||
md5_origin.as_bytes(),
|
||||
|
@ -62,4 +63,12 @@ pub fn stream_url(md5_origin: &str, format: &str, id: &str, media_version: u8) -
|
|||
let ciphertext = cipher.encrypt_vec(&metadata_hash);
|
||||
|
||||
format!("https://cdns-proxy-{}.dzcdn.net/mobile/1/{}", md5_origin.chars().next().unwrap(), hex::encode(ciphertext))
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn decrypt_stream_url(url: &str) -> String {
|
||||
let url = hex::decode(url).unwrap();
|
||||
let cipher = Aes256Ecb::new_from_slices("2f5b4c9785ddc367975b83d90dc46f5c".as_bytes(), Default::default()).unwrap();
|
||||
let url = cipher.decrypt_vec(&url).unwrap();
|
||||
String::from_utf8_lossy(&url).into_owned()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue