Мое почтение, джентльмены! В продолжении темы Variant Serialization and Deserialization Сделал инструменты шифрования алгоритмами AES данных на листе Excel и в коде VBA. Виды алгоритмов шифрования можно выбирать. В тесте работает алгоритм AES256:CBC.
Функционал: 1. Можно шифровать как отдельные значения так и диапазоны/массивы. 2. Шифровать данные можно прям на листе Excel, с дальнейшей расшифровкой нужного диапазона или всего листа. 3. Зашифрованные данные можно хранить в XLL как в виде значений (value2), так и в виде формул (formula) 4. Алгоритм шифрования AES256:CBC. Использована библиотека Crypto++ 5. Пароль нигде не хранится, его знает только пользователь и при утере, расшифровать данные не получится никому 6. Зашифрованные диапазоны - независимые, т.е. можно каждый отдельный диапазон зашифровать со своим паролем, можно зашифровать диапазон дважды (для гиков ) 7. Для данных у которых упаковка будет экономить размер итоговой зашифрованной строки (для массивов и длинных строк) - используется алгоритм сжатия WinAPI:XPRESS_HUFF 8. Реализован механизм (shared string table), как и в Excel, для оптимизации размера одинаковых строк (для массивов). 9. Данные на листе Excel шифруются для каждой ячейки отдельно (для возможности хранить и расшифровывать данные независимо для каждой ячейки) с применением п,7. Для VBA (одно значение или массив) зашифровываются в один массив байт, что позволяет применять и п.7 и п.8 10. Итоговый результат шифрования (любого типа данных: строки, числа, ошибки и т.д.) - хранится в виде строки (массива зашифрованных байт).
Шифрование на листе Excel и хранение данный в XLL:
bedvit, приветствую и спасибо! Инструмент полезный — буду использовать. Аналогов я не знаю. Видео очень помогает — вопросы отпали. Хорошо, если и для остальных инструментов будет демонстрация (если не видео, то хоть скринами или примерами кода VBA).
Цитата
bedvit написал: Можем обсудить, кому интересно, подробности и, возможно, внести новый функционал, если он нужен и не реализован.
если ты про этот инструмент, то пока что предложить нечего, а по остальным инструментам я тебе накидал "вагон и маленькую тележку" предложения с примерами
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
можно, но ютубчик сейчас на волоске висит. Возможно, стоит смотреть в сторону "утверждённых" платформ.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Новая редакция BedvitXLL64v5.0b (beta) Добавленный функционал: +для каждой команды есть всплывающие подсказки +хранить и шифровать можно значения (value2) или формулы (formula). Формула может содержать максимум 8 тыс. символов +добавлены разные алгоритмы шифрования +тип данных и алгоритм шифрования запоминается при зашифровки, и их нужно указывать только при шифровании. При расшифровки нужен только 1 пароль (повтор пароля нужен только для шифрования, для расшифровки достаточно одного-первого) +шифровать можно на листе, шифровать можно сохраняемые диапазоны и шифровать можно и файл пользовательских сохранений. +сохранять диапазон в списке диапазонов можно в зашифрованном виде или не в зашифрованном (в незашифрованном эффективнее сжимаются сохранения т.к. обрабатываются все дубликаты во всех сохранённых диапазонах, а не частично в отдельном диапазоне), но можно шифровать сам файл пользовательских настроек - эффективность сжатия сохраняется. +есть возможность автоматически определять границы диапазона, выделяя весь лист или целый столбец или целую строку, см. usedrange +добавлена возможность включать пользовательские сообщения и сообщения в статус-баре Excel +ЭКСПЕРЕМЕНТАЛЬНО: добавлено автоматическое распознавание разных блоков зашифрованных диапазонов, с разными алгоритмами и их расшифровка разом (см. видео).
Добрый день. Иногда возникает такая необходимость: а) Пользователь не должен увидеть некие данные на определенных диапазонах ячеек, а должен только работать с предоставленным ему диапазонами ячеек. б) Пользователь не должен увидеть формулу расчета, а должен видеть только результат этой формулы.
Стандартные защиты диапазона и листа Excel'я легко сломать.
1) Этот инструмент даёт реализовать вышеуказанные 2 функционала, или это немного о другом? 2) Если ответ на 1-й вопрос "ДА", то у пользователя должна быть установлена надстройка Виталия или нет? 3) Если ответ на 1-й вопрос "ДА", то может ли являться проблемой наличие узбекских букв Қ, Ғ, Ҳ, Ў внутри значений диапазонов, внутри формул, в именах диапазонов, листов, книги Excel и папки и надпапках в котором расположена эта книга Excel?
P.S. Извиняюсь, пока нет возможности посмотреть видео.
Бахтиёр, а) этот инструмент позволяет зашифровать нужный диапазон данных (формул) и пользователь может так же на них ссылатся, когда нужно - можно этот диапазон расшифровать и сделать пересчет модели. б) формулу можно пересчитать и зашифровать, при следующем пересчёте - можно сделать это еще раз. В динамике получать результат из зашифрованных формул нельзя.
+Для работы нужна надстройка, ее можео просто открыть или установить в папку надстроек. Работает как обычная надстройка под правами пользователя.
+Поддерживаются все символы юникода, какие сможет отобразить Excel - это вопрос шрифтов.
+XLLcmdRangeStore() - добавлена возможность использования разных локализаций и разной разрядности Excel при шифровании, дешифровки и сохранении формул/значений (см. видеосправку ниже). +Добавлена обработка ошибок на листе Excel при шифровании, дешифровки и сохранении формул/значений.
Как сохраняются текстовые форматы в функциях форматирования в разных локализациях Win + Excel, как сам Excel с этим справляется пока вопрос открытый.