1
0
Эх сурвалжийг харах

fix: protocol checking during random uuidv4 generation
fixes the https://github.com/MHSanaei/3x-ui/issues/2750 issue

Shishkevich D. 3 долоо хоног өмнө
parent
commit
eb165edd5b

+ 12 - 1
web/assets/js/util/index.js

@@ -124,7 +124,18 @@ class RandomUtil {
     }
 
     static randomUUID() {
-        return window.crypto.randomUUID();
+        if (window.location.protocol === "https:") {
+            return window.crypto.randomUUID();
+        } else {
+            return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
+                .replace(/[xy]/g, function (c) {
+                    const randomValues = new Uint8Array(1);
+                    window.crypto.getRandomValues(randomValues);
+                    let randomValue = randomValues[0] % 16;
+                    let calculatedValue = (c === 'x') ? randomValue : (randomValue & 0x3 | 0x8);
+                    return calculatedValue.toString(16);
+                });
+        }
     }
 
     static randomShadowsocksPassword() {