🚨 Ещё можно успеть на курс «OSINT: технология боевой разведки» от Академии Кодебай
🔍 Изучите методы разведки с использованием открытых источников (OSINT) для проведения успешных атак.
🛠️ Освойте ключевые инструменты, такие как Maltego, TheHarvester и другие.
🧪 Пройдите практические лабораторные работы, имитирующие реальную разведку.
🧠 Развивайте навыки, которые помогут вам стать экспертом в области информационной безопасности.Запись открыта до 23 мая Подробнее о курсе ...
по крупному счёту, Random из "0123456789ABCDEF0123456789ABCDEF" даст замечательный UNID) нотус его сожрёт за милую душу))alexas1, Спасибо! ... хотя бы и так
примитивненько, где-то уже встречал такое (кто-то пытался на лотус скрипте или VBA такое сделать) ... думаю пока так и поступим
только надеятьсяКак обеспечить уникальность 32-х значного ключа без проверок на уникальность?
угу и у @rinsk был такой фрагмент, но полюбасу - надежда ток на "достаточную" энтропиюкста, простой @Password даёт UNID совместимую строку
по крупному счёту, Random из "0123456789ABCDEF0123456789ABCDEF" даст замечательный UNID) нотус его сожрёт за милую душу))
или, совсем по взрослому Random из "0123456789ABCDEF" длиной 32
кста, простой @Password даёт UNID совместимую строку
"совместимость" будет) а проверять всё равно надо - просто попытаться взять док по этому юнидунам не крупный счет нужен и не совместимость, а гарантия того, что генерируемый ключ никогда не встретит дубликата в базе, среди уже существующих лотусных документов ... даже наверное сразу заложим возможность перегенерации в случае проблем
она будет опираться на время компа! (в любом случае) + затравка (рэндомная), точность времени (до мс) обеспечит достаточную вероятность несовпадения, если генерация будет происходить реже чем 1мса гарантия того, что генерируемый ключ никогда не встретит дубликата в базе
я так понимаю - основное - нежелание отправлять запросы (это м.б. в районе 20мс)..."совместимость" будет) а проверять всё равно надо - просто попытаться взять док по этому юниду
вообще не принципиально, по крупному счёту - нотус при сохранении нового дока в бвзу всегда проверяет уникальностьона будет опираться на время компа! (в любом случае) + затравка (рэндомная), точность времени (до мс) обеспечит достаточную вероятность несовпадения, если генерация будет происходить реже чем 1мс
вероятность дубля крайне мала, ну получил ошибку при сохранении - перегенерил и повториля так понимаю - основное - нежелание отправлять запросы (это м.б. в районе 20мс)...
да и бомбить домну запросами (по хттп) - тоже может тормознуть её
как на пыхе код напишутну получил ошибку при сохранении - перегенерил и повторил
я так понимаю - основное - нежелание отправлять запросы (это м.б. в районе 20мс)...
да и бомбить домну запросами (по хттп) - тоже может тормознуть её
А смысл?? Это, по крупному счёту, не гарантирует уникальности в сторонней базе - нотус уникальность контролит только для базы где создаётся юнид. Это если совсем тоненько подходить...можно оставить domino для генерации, почему бы и нет.
docker + webservice, даже документы сохранять не надо, просто создать пустой и вернуть его юнид.
Одна система => одна база => веб-сервис для системы.А смысл?? Это, по крупному счёту, не гарантирует уникальности в сторонней базе - нотус уникальность контролит только для базы где создаётся юнид. Это если совсем тоненько подходить...
Алгоритм ясен - генерить надо самому.
Во все других системах уже нет возможности избавиться от лотусного формата, поэтому новая мастер система должна будет продолжать выделять их в том же формате.
Одна система => одна база => веб-сервис для системы.
а так то,"и здесь представляется такой расклад, когда лотус уже совсем не нужен, кроме как для выделения идишек для какой-то системы )))"(с) - держать домино-комбайн только для юнидов совсем не комильфо. База любого уникального ключа - таймштамп. Централизованная генерация юнида всегда обеспечит уникальность с точностью, зависящей только от надёжности системных часов и способа получения времени от них. Ну а обеспечить ключу "правильный" формат - дело техники.Одна система => одна база => веб-сервис для системы.
а так то, смотря что проще.
Интересно. У @Hashpassword такие же ограничения? Если нет - то комбинация @Password(@Hashpassword ...На @Password неожиданно стала сыпаться ошибка 221, оказалось, что у данной @-формулы есть недокументированное ограничение по размеру обрабатываемых данных. Делать LeftB$(sData, 2480) не вариант.
Что посоветуете для LS?
Единственное, что приходит на ум - порезать данные порциями в 2480, вычислить хеш каждой, склеить и вычислить ещё раз...
Да, то же ограничение.У @Hashpassword такие же ограничения? Если нет - то комбинация @Password(@Hashpassword ...
%REM
Function encryptPassword
Description: генерирует статический хеш (контрольную сумму) из 32-х символов;
может использоваться для проверки целостности данных либо в качестве UNID
sData - данные, по которым нужно сгенерировать хеш
%END REM
Public Function encryptPassword(sData As String) As String
On Error GoTo ErrH
'если строка содержит > 1113 байт, то Lotus генерирует Err=221 'Invalid formula @Password(...)'
Const PORTION_LIMIT = 1000 'про запас, и для простоты отладки; не менять, т.к. изменится хеш!
Dim nDataLen As Long, nStart As Long, sPortion As String
nDataLen = Len(sData)
'Print "nDataLen = " & nDataLen
For nStart = 1 To nDataLen Step PORTION_LIMIT
sPortion = Mid$(sData, nStart, PORTION_LIMIT)
'Print nStart, Len(sPortion)
encryptPassword = encryptPassword + Mid(Join(Evaluate(|@Password({| + sPortion + |})|) ), 2, 32)
Next
If nDataLen <= PORTION_LIMIT Then Exit Function
encryptPassword = encryptPassword(encryptPassword)
Quit:
Exit Function
ErrH:
'MsgBox sPortion,, CStr(Len(sPortion))
Error Err, GetThreadInfo(1) & " (" & Erl & ") -> " & Error$
End Function
Обучение наступательной кибербезопасности в игровой форме. Начать игру!