Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/обратимое хеширование значений на VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
обратимое хеширование значений на VBA
nmerlits Дата: Среда, 04.07.2012, 15:35 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Формируется код из полей для последующей загрузки в систему, где ограничение на код составляет 45 символов. Но сформированный код часто больше 45 символов. Нужно каким-то образом захешировать этот код. В идеале нужно иметь возможность этот код восстановить. Выходит что-то похожее на архивирование.
Во вложении файл с примером. Код, который необходимо архивировать в столбце А (должен быть уникальным).
Поле 1 - 10-12 цифр
Поле 2 - <=45 цифр с ведущими нулями
Поле 3,4 - формат как в примере

Большое спасибо за помощь!
К сообщению приложен файл: 8895149.xls (22.0 Kb)
 
Ответить
СообщениеФормируется код из полей для последующей загрузки в систему, где ограничение на код составляет 45 символов. Но сформированный код часто больше 45 символов. Нужно каким-то образом захешировать этот код. В идеале нужно иметь возможность этот код восстановить. Выходит что-то похожее на архивирование.
Во вложении файл с примером. Код, который необходимо архивировать в столбце А (должен быть уникальным).
Поле 1 - 10-12 цифр
Поле 2 - <=45 цифр с ведущими нулями
Поле 3,4 - формат как в примере

Большое спасибо за помощь!

Автор - nmerlits
Дата добавления - 04.07.2012 в 15:35
Gustav Дата: Среда, 04.07.2012, 15:48 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Например, последовательности одинаковых символов длиннее четырех сворачивать в четырехсимвольную строку вида RNNC, где R - буква-признак (от repeat), NN - кол-во символов (от 05 до 99), С - собственно повторяемый символ (цифра).


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеНапример, последовательности одинаковых символов длиннее четырех сворачивать в четырехсимвольную строку вида RNNC, где R - буква-признак (от repeat), NN - кол-во символов (от 05 до 99), С - собственно повторяемый символ (цифра).

Автор - Gustav
Дата добавления - 04.07.2012 в 15:48
Gustav Дата: Среда, 04.07.2012, 18:04 | Сообщение № 3
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Еще вариант. Если в "Поле2" будут одни цифры, то можно уменьшить кол-во символов почти вдвое. Достигается превращением каждой пары цифр в один код символа (байт). При этом строке "00" соответствует символ с кодом 34, "01" - 35, "02" - 36 и так далее. Символы с кодами 0-31 исключены как непечатаемые, символ с кодом 32 - как пробел (потому что толком не виден - неудобен), символ с кодом 33 (восклицательный знак) используется в качестве заключительного символа при нечетном кол-ве символов в строке. При этом предпоследний (нечетный, перед воскл.знаком) символ изображается в результирующей хеш-строке самим собой. Подробности - в файле.

P.S. А вообще тема на Форуме уже поднималась: http://www.excelworld.ru/forum/2-917
К сообщению приложен файл: 8895149_hash.xls (70.0 Kb)


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Среда, 04.07.2012, 18:43
 
Ответить
СообщениеЕще вариант. Если в "Поле2" будут одни цифры, то можно уменьшить кол-во символов почти вдвое. Достигается превращением каждой пары цифр в один код символа (байт). При этом строке "00" соответствует символ с кодом 34, "01" - 35, "02" - 36 и так далее. Символы с кодами 0-31 исключены как непечатаемые, символ с кодом 32 - как пробел (потому что толком не виден - неудобен), символ с кодом 33 (восклицательный знак) используется в качестве заключительного символа при нечетном кол-ве символов в строке. При этом предпоследний (нечетный, перед воскл.знаком) символ изображается в результирующей хеш-строке самим собой. Подробности - в файле.

P.S. А вообще тема на Форуме уже поднималась: http://www.excelworld.ru/forum/2-917

Автор - Gustav
Дата добавления - 04.07.2012 в 18:04
MCH Дата: Среда, 04.07.2012, 23:27 | Сообщение № 4
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

ну и мой вариант
К сообщению приложен файл: code.xls (47.5 Kb)
 
Ответить
Сообщениену и мой вариант

Автор - MCH
Дата добавления - 04.07.2012 в 23:27
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!