mirror of
https://github.com/koodo-reader/koodo-reader.git
synced 2026-06-11 09:24:48 -04:00
refactor: replace SparkMD5 with CryptoJS for MD5 hashing and remove unused dependencies
This commit is contained in:
@@ -72,7 +72,6 @@
|
||||
"@types/react-i18next": "^8.1.0",
|
||||
"@types/react-router-dom": "^5.1.6",
|
||||
"@types/react-tooltip": "^4.2.4",
|
||||
"@types/spark-md5": "^3.0.2",
|
||||
"@types/underscore": "^1.13.0",
|
||||
"@types/ws": "^8.5.5",
|
||||
"classnames": "^2.2.6",
|
||||
@@ -98,7 +97,6 @@
|
||||
"redux": "^4.0.5",
|
||||
"redux-thunk": "^2.3.0",
|
||||
"source-map-explorer": "^2.5.2",
|
||||
"spark-md5": "^3.0.1",
|
||||
"typescript": "^5.9.3",
|
||||
"wait-on": "^7.0.1"
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@ import React from "react";
|
||||
import "./opdsDialog.css";
|
||||
import { Trans } from "react-i18next";
|
||||
import toast from "react-hot-toast";
|
||||
import SparkMD5 from "spark-md5";
|
||||
import CryptoJS from "crypto-js";
|
||||
import { ConfigService } from "../../../assets/lib/kookit-extra-browser.min";
|
||||
import {
|
||||
OPDSCatalog,
|
||||
@@ -106,7 +106,7 @@ function buildDigestAuthHeader(
|
||||
const qop = qopList.includes("auth") ? "auth" : qopList[0] || "";
|
||||
const nc = "00000001";
|
||||
const cnonce = randomString();
|
||||
const hash = (value: string) => SparkMD5.hash(value);
|
||||
const hash = (value: string) => CryptoJS.MD5(value.trim()).toString();
|
||||
|
||||
let ha1 = hash(`${username}:${realm}:${password}`);
|
||||
if (algorithm === "MD5-SESS") {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Plugin from "../models/Plugin";
|
||||
import { isElectron } from "react-device-detect";
|
||||
import SparkMD5 from "spark-md5";
|
||||
import CryptoJS from "crypto-js";
|
||||
import {
|
||||
CommonTool,
|
||||
ConfigService,
|
||||
@@ -54,19 +54,29 @@ export const supportedFormats = [
|
||||
];
|
||||
export const calculateFileMD5 = (file: File): Promise<string> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader();
|
||||
|
||||
reader.onload = (event) => {
|
||||
const arrayBuffer = event.target?.result as ArrayBuffer;
|
||||
const md5Hash = SparkMD5.ArrayBuffer.hash(arrayBuffer);
|
||||
resolve(md5Hash);
|
||||
};
|
||||
|
||||
reader.onerror = (error) => {
|
||||
reject(error);
|
||||
};
|
||||
|
||||
reader.readAsArrayBuffer(file);
|
||||
if (isElectron) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = (event) => {
|
||||
const arrayBuffer = event.target?.result as ArrayBuffer;
|
||||
const crypto = window.require("crypto");
|
||||
const hash = crypto.createHash("md5");
|
||||
hash.update(Buffer.from(arrayBuffer));
|
||||
resolve(hash.digest("hex"));
|
||||
};
|
||||
reader.onerror = (error) => reject(error);
|
||||
reader.readAsArrayBuffer(file);
|
||||
} else {
|
||||
const reader = new FileReader();
|
||||
reader.onload = (event) => {
|
||||
const arrayBuffer = event.target?.result as ArrayBuffer;
|
||||
const wordArray = CryptoJS.lib.WordArray.create(
|
||||
new Uint8Array(arrayBuffer) as any
|
||||
);
|
||||
resolve(CryptoJS.MD5(wordArray).toString());
|
||||
};
|
||||
reader.onerror = (error) => reject(error);
|
||||
reader.readAsArrayBuffer(file);
|
||||
}
|
||||
});
|
||||
};
|
||||
export const vexPromptAsync = (message, placeholder = "", value = "") => {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import SparkMD5 from "spark-md5";
|
||||
import {
|
||||
ConfigService,
|
||||
TokenService,
|
||||
@@ -300,7 +299,7 @@ export const verifyAndBuildKOReaderSyncConfig = async (params: {
|
||||
serverUrl: normalizeServerUrl(params.serverUrl),
|
||||
username: (params.username || "").trim(),
|
||||
passwordHash: (params.password || "").trim()
|
||||
? SparkMD5.hash((params.password || "").trim())
|
||||
? CryptoJS.MD5((params.password || "").trim()).toString()
|
||||
: (params.passwordHash || "").trim(),
|
||||
};
|
||||
if (!config.serverUrl || !config.username || !config.passwordHash) {
|
||||
|
||||
10
yarn.lock
10
yarn.lock
@@ -4439,11 +4439,6 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/spark-md5@^3.0.2":
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/spark-md5/-/spark-md5-3.0.2.tgz#da2e8a778a20335fc4f40b6471c4b0d86b70da55"
|
||||
integrity sha512-82E/lVRaqelV9qmRzzJ1PKTpyrpnT7mwdneKNJB9hUtypZDMggloDfFUCIqRRx3lYRxteCwXSq9c+W71Vf0QnQ==
|
||||
|
||||
"@types/stack-utils@^2.0.0":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
|
||||
@@ -13840,11 +13835,6 @@ sourcemap-codec@^1.4.8:
|
||||
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
|
||||
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
|
||||
|
||||
spark-md5@^3.0.1:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc"
|
||||
integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==
|
||||
|
||||
spawn-command@^0.0.2-1:
|
||||
version "0.0.2-1"
|
||||
resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0"
|
||||
|
||||
Reference in New Issue
Block a user