MengYX
4 years ago
No known key found for this signature in database
GPG Key ID: E63F9C7303E8F604
4 changed files with
20 additions and
12 deletions
-
README.md
-
src/App.vue
-
src/decrypt/kgm.js
-
src/decrypt/ncm.js
|
|
@ -34,6 +34,7 @@ |
|
|
|
# 使用方法 |
|
|
|
## 使用已构建版本 |
|
|
|
- 从[GitHub Release](https://github.com/ix64/unlock-music/releases/latest)下载已构建的版本 |
|
|
|
- 本地使用请下载`legacy版本`(`modern版本`只能通过**http/https协议**访问) |
|
|
|
- 解压缩后即可部署或本地使用(**请勿直接运行源代码**) |
|
|
|
|
|
|
|
## 自行构建 |
|
|
|
|
|
@ -100,16 +100,16 @@ |
|
|
|
} catch (e) { |
|
|
|
} |
|
|
|
if ((!!updateInfo && process.env.NODE_ENV === 'production') && (!!updateInfo.HttpsFound || |
|
|
|
(!!updateInfo.Found && window.location.protocol !== "https:"))) { |
|
|
|
this.$notify.warning({ |
|
|
|
title: '发现更新', |
|
|
|
message: '发现新版本 v' + updateInfo.Version + |
|
|
|
'<br/>更新详情:' + updateInfo.Detail + |
|
|
|
'<br/><a target="_blank" href="' + updateInfo.URL + '">获取更新</a>', |
|
|
|
dangerouslyUseHTMLString: true, |
|
|
|
duration: 15000, |
|
|
|
position: 'top-left' |
|
|
|
}); |
|
|
|
(!!updateInfo.Found && document.location.protocol !== "https:"))) { |
|
|
|
this.$notify.warning({ |
|
|
|
title: '发现更新', |
|
|
|
message: '发现新版本 v' + updateInfo.Version + |
|
|
|
'<br/>更新详情:' + updateInfo.Detail + |
|
|
|
'<br/><a target="_blank" href="' + updateInfo.URL + '">获取更新</a>', |
|
|
|
dangerouslyUseHTMLString: true, |
|
|
|
duration: 15000, |
|
|
|
position: 'top-left' |
|
|
|
}); |
|
|
|
} else { |
|
|
|
this.$notify.info({ |
|
|
|
title: '离线使用', |
|
|
|
|
|
@ -10,9 +10,14 @@ const KgmHeader = [ |
|
|
|
const VprMaskDiff = [0x25, 0xDF, 0xE8, 0xA6, 0x75, 0x1E, 0x75, 0x0E, |
|
|
|
0x2F, 0x80, 0xF3, 0x2D, 0xB8, 0xB6, 0xE3, 0x11, |
|
|
|
0x00] |
|
|
|
const PreDefinedKey = "MoOtOiTvINGwd2E6n0E1i7L5t2IoOoNk" |
|
|
|
|
|
|
|
export async function Decrypt(file, raw_filename, raw_ext) { |
|
|
|
if (document.location.protocol === "file:") { |
|
|
|
return { |
|
|
|
status: false, |
|
|
|
message: "请使用<a target='_blank' href='https://github.com/ix64/unlock-music/wiki/其他音乐格式工具'>CLI版本</a>进行解锁" |
|
|
|
} |
|
|
|
} |
|
|
|
const oriData = new Uint8Array(await GetArrayBuffer(file)); |
|
|
|
if (raw_ext === "vpr") { |
|
|
|
if (!IsBytesEqual(VprHeader, oriData.slice(0, 0x10))) |
|
|
|
|
|
@ -164,7 +164,9 @@ function getMetaData(dataView, fileBuffer, offset) { |
|
|
|
if (plainText.slice(0, labelIndex) === "dj") { |
|
|
|
result = result.mainMusic; |
|
|
|
} |
|
|
|
if (!!result.albumPic) result.albumPic = result.albumPic.replace("http://", "https://"); |
|
|
|
if (!!result.albumPic && result.albumPic !== "") |
|
|
|
result.albumPic = result.albumPic.replace("http://", "https://") + "?param=500y500"; |
|
|
|
|
|
|
|
return {data: result, offset: offset}; |
|
|
|
} |
|
|
|
|
|
|
|