From fd9cd33041f4fb6b628623eab59369c261bba354 Mon Sep 17 00:00:00 2001 From: RoyceDa Date: Sat, 31 Jan 2026 22:27:01 +0200 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D0=B0=D1=8F=20=D0=B3=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8F=20message=20id,=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BE=D0=BD=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20?= =?UTF-8?q?=D0=BE=D1=82=20=D0=BE=D0=BF=D0=BF=D0=BE=D0=BD=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/providers/DialogProvider/DialogProvider.tsx | 5 ++--- app/providers/DialogProvider/useDialogFiber.ts | 2 +- app/utils/utils.ts | 14 -------------- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/app/providers/DialogProvider/DialogProvider.tsx b/app/providers/DialogProvider/DialogProvider.tsx index 0dccaa9..70c6c94 100644 --- a/app/providers/DialogProvider/DialogProvider.tsx +++ b/app/providers/DialogProvider/DialogProvider.tsx @@ -18,7 +18,6 @@ import { useWindowFocus } from '@/app/hooks/useWindowFocus'; import { useDialogsCache } from './useDialogsCache'; import { useConsoleLogger } from '@/app/hooks/useConsoleLogger'; import { useViewPanelsState, ViewPanelsState } from '@/app/hooks/useViewPanelsState'; -import { generateRandomKeyFormSeed } from '@/app/utils/utils'; import { MessageReply } from './useReplyMessages'; import { useTransport } from '../TransportProvider/useTransport'; import { useFileStorage } from '@/app/hooks/useFileStorage'; @@ -385,7 +384,7 @@ export function DialogProvider(props: DialogProviderProps) { * чтобы сообщение записанное здесь в стек сообщений совпадало * с тем что записывается в БД в файле useDialogFiber.ts */ - const messageId = generateRandomKeyFormSeed(16, fromPublicKey + toPublicKey + timestamp.toString()); + const messageId = packet.getMessageId(); const chachaDecryptedKey = Buffer.from( await decrypt(chachaKey, privatePlain), "binary"); @@ -450,7 +449,7 @@ export function DialogProvider(props: DialogProviderProps) { * чтобы сообщение записанное здесь в стек сообщений совпадало * с тем что записывается в БД в файле useDialogFiber.ts */ - const messageId = generateRandomKeyFormSeed(16, fromPublicKey + toPublicKey + timestamp.toString()); + const messageId = packet.getMessageId(); const groupKey = await getGroupKey(toPublicKey); if(!groupKey){ diff --git a/app/providers/DialogProvider/useDialogFiber.ts b/app/providers/DialogProvider/useDialogFiber.ts index 2c372aa..26e08eb 100644 --- a/app/providers/DialogProvider/useDialogFiber.ts +++ b/app/providers/DialogProvider/useDialogFiber.ts @@ -317,7 +317,7 @@ export function useDialogFiber() { const content = packet.getContent(); const chachaKey = packet.getChachaKey(); const timestamp = packet.getTimestamp(); - const messageId = generateRandomKeyFormSeed(16, fromPublicKey + toPublicKey + timestamp.toString()); + const messageId = packet.getMessageId(); if(hasGroup(toPublicKey)){ /** * Если это групповое сообщение, то игнорируем его здесь diff --git a/app/utils/utils.ts b/app/utils/utils.ts index f82ae7b..34b2d40 100644 --- a/app/utils/utils.ts +++ b/app/utils/utils.ts @@ -65,20 +65,6 @@ export function murmurHash3_32_gc(key: string, seed: number = 0): number { return h1 >>> 0; } -export function generateRandomKeyFormSeed(length: number, seed: string): string { - const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; - let result = ''; - const charactersLength = characters.length; - let seedHash = murmurHash3_32_gc(seed, 1028); - let state = Math.abs(seedHash); - for (let i = 0; i < length; i++) { - state = (state * 1664525 + 1013904223) % 4294967296; - const randomIndex = state % charactersLength; - result += characters.charAt(randomIndex); - } - return result; -} - function hashCode(input: string) { let hash = 0; for (let i = 0; i < input.length; i += 1) {