Simplify
This commit is contained in:
parent
7b9070f99d
commit
bceabe4fcf
@ -21,17 +21,6 @@ export async function Decrypt(file, raw_filename, raw_ext) {
|
|||||||
|
|
||||||
let fileKey = oriData.slice(0x18, 0x20)
|
let fileKey = oriData.slice(0x18, 0x20)
|
||||||
let mask = createMaskFromKey(fileKey)
|
let mask = createMaskFromKey(fileKey)
|
||||||
|
|
||||||
function Uint8ArrayToString(fileData) {
|
|
||||||
var dataString = "";
|
|
||||||
for (var i = 0; i < fileData.length; i++) {
|
|
||||||
dataString += String.fromCharCode(fileData[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataString
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
let audioData = oriData.slice(0x400);
|
let audioData = oriData.slice(0x400);
|
||||||
let lenAudioData = audioData.length;
|
let lenAudioData = audioData.length;
|
||||||
for (let cur = 0; cur < lenAudioData; ++cur)
|
for (let cur = 0; cur < lenAudioData; ++cur)
|
||||||
|
@ -1,14 +1,22 @@
|
|||||||
const CryptoJS = require("crypto-js");
|
const CryptoJS = require("crypto-js");
|
||||||
const CORE_KEY = CryptoJS.enc.Hex.parse("687a4852416d736f356b496e62617857");
|
const CORE_KEY = CryptoJS.enc.Hex.parse("687a4852416d736f356b496e62617857");
|
||||||
const META_KEY = CryptoJS.enc.Hex.parse("2331346C6A6B5F215C5D2630553C2728");
|
const META_KEY = CryptoJS.enc.Hex.parse("2331346C6A6B5F215C5D2630553C2728");
|
||||||
import {AudioMimeType, DetectAudioExt, GetArrayBuffer, GetFileInfo, GetWebImage, WriteMp3Meta} from "./util"
|
const MagicHeader = [0x43, 0x54, 0x45, 0x4E, 0x46, 0x44, 0x41, 0x4D];
|
||||||
|
import {
|
||||||
|
AudioMimeType,
|
||||||
|
DetectAudioExt,
|
||||||
|
GetArrayBuffer,
|
||||||
|
GetFileInfo,
|
||||||
|
GetWebImage,
|
||||||
|
IsBytesEqual,
|
||||||
|
WriteMp3Meta
|
||||||
|
} from "./util"
|
||||||
|
|
||||||
export async function Decrypt(file, raw_filename, raw_ext) {
|
export async function Decrypt(file, raw_filename, raw_ext) {
|
||||||
const fileBuffer = await GetArrayBuffer(file);
|
const fileBuffer = await GetArrayBuffer(file);
|
||||||
const dataView = new DataView(fileBuffer);
|
const dataView = new DataView(fileBuffer);
|
||||||
|
|
||||||
if (dataView.getUint32(0, true) !== 0x4e455443 ||
|
if (!IsBytesEqual(MagicHeader, new Uint8Array(fileBuffer, 0, 8)))
|
||||||
dataView.getUint32(4, true) !== 0x4d414446)
|
|
||||||
return {status: false, message: "此ncm文件已损坏"};
|
return {status: false, message: "此ncm文件已损坏"};
|
||||||
|
|
||||||
const keyDataObj = getKeyData(dataView, fileBuffer, 10);
|
const keyDataObj = getKeyData(dataView, fileBuffer, 10);
|
||||||
@ -22,7 +30,6 @@ export async function Decrypt(file, raw_filename, raw_ext) {
|
|||||||
let lenAudioData = audioData.length;
|
let lenAudioData = audioData.length;
|
||||||
for (let cur = 0; cur < lenAudioData; ++cur) audioData[cur] ^= keyBox[cur & 0xff];
|
for (let cur = 0; cur < lenAudioData; ++cur) audioData[cur] ^= keyBox[cur & 0xff];
|
||||||
|
|
||||||
|
|
||||||
if (musicMeta.album === undefined) musicMeta.album = "";
|
if (musicMeta.album === undefined) musicMeta.album = "";
|
||||||
|
|
||||||
const artists = [];
|
const artists = [];
|
||||||
@ -132,7 +139,6 @@ function getMetaData(dataView, fileBuffer, offset) {
|
|||||||
if (plainText.slice(0, labelIndex) === "dj") {
|
if (plainText.slice(0, labelIndex) === "dj") {
|
||||||
result = result.mainMusic;
|
result = result.mainMusic;
|
||||||
}
|
}
|
||||||
console.log(result);
|
|
||||||
if (!!result.albumPic) result.albumPic = result.albumPic.replace("http://", "https://");
|
if (!!result.albumPic) result.albumPic = result.albumPic.replace("http://", "https://");
|
||||||
return {data: result, offset: offset};
|
return {data: result, offset: offset};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user