Как хэшировать данные в md5 excel

Обновлено: 06.07.2024

У меня есть столбец паролей, которые я хочу зашифровать с помощью MD5, чтобы их можно было использовать при аутентификации пользователей, я не знаю, есть ли способ сделать это в Excel?

(Распродажа 40% скоро заканчивается)

Курс Excel VBA — от новичка до эксперта

200+ видеоуроков 50+ часов обучения 200+ руководств Excel

С помощью этого онлайн-курса станьте мастером VBA и макросов в Excel и узнайте, как автоматизировать все свои задачи в Excel. (Опыт работы с VBA не требуется.)

(Скидка 40% скоро закончится!)

Похожие темы

Автоматически изменить текст на верхний регистр — Excel

Я создаю лист данных для заполнения другими пользователями. Я хотел бы
отформатировать текстовые ячейки (имя и т. д.), чтобы текст вводился в верхнем регистре
автоматически, хотя пользователь может использовать заголовок или нижний регистр.

Функция ПРОПИСЬ не может заставить ячейку посмотреть на себя и выполнить функцию

Вставка таблицы в пользовательскую форму — Excel

Мне было поручено добавить пользовательские формы в таблицу Excel, и я очень удивлен, что в Excel есть возможность добавлять пользовательские формы в таблицы Excel.

Во всяком случае, у меня есть 2 столбца данных на листе Excel, и я хочу добавить их в пользовательскую форму, чтобы пользовательская форма отображала 2 столбца рядом друг с другом с заголовками, как в таблице. Затем пользователь должен иметь возможность выбрать конкретную строку и вставить ее в указанную ячейку.

Я также хотел бы, чтобы пользователь выбирал строку в таблице, а затем мог вызвать другую таблицу в зависимости от выбранной строки. в основном для того, чтобы пользователь мог глубже изучить необходимую ему информацию.

У меня есть пример листа Excel, где у меня есть 2 листа. Один лист — это лист ввода пользователя, который называется «Экран ввода пользователя». следующий лист - это лист таблиц, где хранятся мои столы. Как только пользователь выберет ячейку, показанную на листе примера, он должен открыть форму пользователя. затем пользователю, в зависимости от того, какой элемент щелкнул, отображается следующее окно с таблицей и информацией о ней. затем пользователь должен иметь возможность выбрать элемент, и ячейки на экране ввода пользователя будут заполнены.

Лично я думаю, что это действительно сложная задача, и любая помощь в решении этого вопроса будет очень признательна.

Я опубликую дополнительные комментарии по мере того, как буду работать над этим!

Сохранить файл на рабочем столе текущего пользователя — Excel

У меня есть файл VBMacro Excel, загруженный на сервер, к которому обращаются многие люди. Макрос в этом файле создает копию определенного листа в активной книге, и я хочу сохранить ее на рабочем столе пользователя.

Как узнать путь к папке рабочего стола текущего пользователя каждый раз, когда Marco запускается другим пользователем?

Пример пути пользователя: 'C:\Documents and Settings\jfarc\Desktop'

Где «jfarc» — это имя текущего пользователя, которое, конечно, будет меняться с каждым другим пользователем, запускающим макрос.

Кроме того, есть ли способ извлечь из Excel то, что является параметрами текущего пользователя | Общие | Запись «Расположение файла по умолчанию»? Который может отличаться от указанного выше каталога.

Я знаком и использую следующий код для открытия/сохранения файлов в текущем каталоге открытой книги, но он дает только путь к существующей книге Excel, а не текущий путь к каталогу пользователя:

Затемнить wbThis как рабочую книгу
Установить wbThis = ThisWorkbook
ChDir wbThis.Path

Проверить, содержит ли ячейка дату — Excel

Поскольку в Excel нет функции ISDATE.

Следующее можно использовать для имитации того же самого и избежать необходимости добиваться того же с помощью функции IsDate VBA:

ШАГИ:
1- Отформатируйте столбец (например, A) как текст

2- Формула для проверки правильности дат:
=ISERROR(DATEVALUE(A1))

Найти функцию, которая не работает? - Excel

У меня есть лист со списком имен, и я заметил, что когда я использую Ctrl+F для использования функции поиска, даже если я знаю, что ввел правильное имя, это все равно не будет работать. Я идентифицировал случаи, когда я знаю, что имя есть на листе, но функция поиска говорит: «Excel не может найти данные, которые вы ищете»

Я не могу вставить какие-либо фотографии, так как на моем рабочем компьютере отключена поддержка Java, поэтому photobucket и т. д. не будут работать, но кто-нибудь еще сталкивался с этой проблемой и как вы ее решили? Возможно макрос поиска?

Если функция и выпадающие меню — Excel

Есть ли гуру Excel, который может помочь с этим? Это связано с "раскрывающимися меню"


У меня есть 2 столбца данных.

В нижней части первого я создал раскрывающееся меню, используя функцию «проверки данных» в Excel.

В нижней части второго столбца я использовал функцию "ЕСЛИ", которая возвращает результат, который зависит от того, какое значение выбрано в раскрывающемся меню в столбце 1

Проблема заключается в том, что я хочу, чтобы ИСТИННЫЙ результат функции ЕСЛИ был еще одним выпадающим меню, являющимся данными в столбце 2.


Как написать функцию ЕСЛИ, в которой ИСТИННЫЙ результат представляет собой раскрывающееся меню??
Я попытался создать раскрывающееся меню colomb2 в другом месте электронной таблицы и использовал это расположение ячеек в качестве значения TRUE, но это тоже не сработало.

Вернуть пользователя в пользовательскую форму, если не все поля были заполнены - Excel

У меня есть пользовательская форма с несколькими полями: 5 обязательных и 6 необязательных. Если пользователь не вводит значение для ВСЕХ 5 «обязательных» полей, как мне получить код для возврата пользователя в пользовательскую форму (с, как я предполагаю, уже введенными значениями, все еще отображаемыми)?

У меня есть код AutoOpen, который запускает все, а затем, в свою очередь, загружает пользовательскую форму с полями, которые необходимо заполнить.

Я не могу понять, как перенаправить пользователя обратно в форму пользователя, чтобы ввести «пропущенные» данные.

Установка формата даты для текстового поля в пользовательской форме — Excel

Я уже некоторое время борюсь с этим и не могу поверить, насколько это сложно! Я искал на этом сайте и на других, чтобы получить некоторые разъяснения, но безрезультатно.

Это действительно очень просто. У меня есть пользовательская форма, которая содержит текстовое поле для ввода пользователем даты. Я хочу, чтобы формат был дд/мм/гггг, но не могу узнать, как установить формат текстового поля для этого.

Пожалуйста, кто-нибудь может дать мне небольшое руководство или ссылку на хороший ресурс, если я пропустил его в поиске.

Заранее спасибо.

Как вы рассчитываете средние значения по месяцам? - Excel

У меня есть два столбца данных: столбец A содержит дату и время в формате дд/мм/гггг. Столбец B содержит числовое значение. Все времена указаны по порядку, поэтому столбец А выглядит так:

01.01.2007
01.02.2007
01.03.2007

У меня есть данные с 2007 по 2010 год. Мне нужно рассчитать среднее дневное значение (в столбце B) для каждого месяца и отобразить его в столбце C. Итак, для января мне нужно рассчитать среднее значение за 31 день, февраль, 28 дней и т.д.

Есть ли функция, которую я могу использовать для этого? Я пробовал формулу СРЗНАЧЕСЛИ, но не могу заставить ее работать. Любые идеи будут высоко оценены!

Большое спасибо,
Кейтлин

Ячейка суммирования окрашена - Excel

У меня есть ячейки в столбце, некоторые окрашены в желтый цвет, некоторые нет. Я пытаюсь использовать
функцию СУММЕСЛИ для суммирования только цветных ячеек в диапазоне.
Можно ли это сделать? Могу ли я ввести что-то в части "критериев" формулы,
что может сделать это?

Я также пытался использовать цветовую функцию функции CELL, но мне не удалось заставить ее
работать правильно. Я не знаю, как заставить Excel распознавать
цветную ячейку в формуле.
=ЯЧЕЙКА("цвет",ячейка)

Возможно, я просто не знаю, что это означает в справке:

"цвет" --> 1, если ячейка отформатирована в цвете для отрицательных значений;
иначе возвращает 0 (ноль).

Кто-нибудь может помочь?

Файл заблокирован для редактирования. Могу ли я выгнать другого пользователя, если это мой файл? - Excel

файл заблокирован для редактирования, могу ли я исключить другого пользователя, если это мой файл?

Я создал файл Excel, в который другие люди должны входить и обновлять его. Этот процесс занимает 2 секунды, но некоторые люди забывают об этом и остаются в нем во время обеда и т. д., что вызывает сильное раздражение.
Можно ли как-то "выкинуть" их из моего файла? Меня не беспокоит, если они потеряют какие-либо данные, которые они ввели, так как я уверен, что это поможет им получить сообщение, чтобы получить файл быстрее.
Это действительно ломает мне голову. Пожалуйста, помогите

Vba Lock and Protect Cells or Range Of Cells — Excel

У меня есть рабочий лист, который сейчас заблокирован и защищен, за исключением ячеек в определенном столбце. Я назвал ячейки в этом столбце "MS96A".

Если пользователь вводит дату в ячейку или диапазон ячеек в любом месте столбца, измененные ячейки также должны быть заблокированы и защищены. ! *Пожал плечами*).

Я ищу это. Если пользователь снова выберет эту ячейку, он получит обычное всплывающее сообщение: «Ячейка или диаграмма, которые вы пытаетесь изменить, защищены».

Думаю, я близок к этому, но получаю сообщение об ошибке "Конец, если без блока, если" в предложении "Если".


Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim MRange As Range
Set MRange = Range("MS96A")
' If Not Intersect(Target, MRange ) Ничего не значит для каждой ячейки в MRange Sheets("Sheet1").Unprotect Password:="temp"
cell.Interior.ColorIndex = 3
cell.Font.Color = vbBlack
Selection .Locked = True
Selection.FormulaHidden = False
Следующая ячейка
ActiveSheet.Protect Password:="temp", _
DrawingObjects:=False, _
Содержание: =True, _
Сценарии:=False
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub

Заморозить дату, чтобы она не обновлялась каждый день — Excel

Здравствуйте, пожалуйста, помогите мне с этим.

Итак, я работаю над этим отчетом, и мне нужна функция, которая заставит Excel автоматически вставлять сегодняшнюю дату в ячейку (скажем, D90), когда я заполняю содержимое другой ячейки (например, C90), и что будет вставлен, никогда не изменится. Я попытался использовать функцию =СЕГОДНЯ(), но она продолжает обновлять дату в ячейке до текущей даты, если я снова открою лист через 2 дня. Мне нужно, чтобы ячейка сохраняла в ячейке дату дня, когда я заполнил содержимое ячейки C90, и не обновляла ее каждый раз, когда открываю документ, до фактической даты. Заранее спасибо!!

Отключить уведомление, когда пользователь щелкает заблокированную ячейку — Excel

у меня следующая проблема:

Я хочу, чтобы пользователи дважды щелкали строку на защищенном листе, а затем выполняли некоторый код на основе номера строки выбранной ячейки. Я защитил лист, потому что он содержит много формул.

Когда пользователь дважды щелкает строку, он запускает код через событие Workbook_SheetBeforeDoubleClick.
После выполнения кода Excel показывает сообщение о том, что выбранная ячейка защищена и т. д. и т. д.

Как предотвратить появление этого сообщения?

Я уже пробовал
Код:

но это не сработало

Индекс/сопоставление на разных листах — Excel

Наверное, для большинства из вас это простой вопрос, но меня он убивает. Я пытался выполнить поиск, прежде чем опубликовать это, но данные предложения не сработали для меня.

Мне нужно найти данные из ячейки на одном листе Excel, сравнить их со списком на втором листе и, когда они сравняются, взять значение из другого столбца на втором листе и вернуть его на первый лист. . Поскольку это ужасное объяснение, позвольте мне попытаться объяснить это следующим образом:

Лист 1
Столбец A содержит длинный список кодов типа 1
Столбец E содержит длинный список кодов типа 2

Лист 2
Ячейка C2 имеет код 1
Ячейке E2 нужен код 2

Я знаю, что он должен использовать функцию индекса/сопоставления, но ничего из того, что я пробовал, не работает. Я пытаюсь использовать следующую формулу в ячейке E2 листа 2:

=ИНДЕКС('Лист 1'!A:A,ПОИСКПОЗ(C2,'Лист 1"!E:E,0),5)

Но все, что я получаю, это отсутствие результата. Что меня бесит, так это то, что если я скопирую все на один лист, эта формула будет работать нормально.

Поиск точки пересечения оси X — Excel

Итак, у меня есть некоторые данные, которые имеют приблизительную форму синусоидальной функции. Я хочу найти все точки пересечения оси X. Я попытался использовать функцию перехвата и поменять местами значения y для значений x, но она возвращает только 1 значение (поэтому я предполагаю, что она использует линейную регрессию для оценки одной линии по оси).

Я думал попробовать вложенный оператор if/and, но не совсем понял, как это сделать. По сути, я хочу определить два значения, в которых оно переключается с положительного на отрицательное, а также определить значения, в которых оно переходит от отрицательного к положительному, затем я могу провести прямую линию между ними, чтобы найти лучшее приближение точки пересечения (хотя это может быть не так). необходимо). Предпочтительно, чтобы все это выполнялось одной функцией, так как я не делаю это в VBA (хотя, возможно, я сделаю это позже, посмотрим).

Может кто-нибудь подсказать, как мне найти это значение или x-intercept. Будем признательны за любую помощь.

Я работаю с рядом списков данных, которые разбиты по имени документа. Имена документов, хотя и очень описательные, довольно громоздки, если мне нужно их просмотреть (до 256 байтов - это много недвижимости), и я хотел бы иметь возможность создать ключевое поле меньшего размера, которое легко воспроизвести в случае необходимости. для выполнения ВПР из другого рабочего стола или книги.

Я думаю, что хеш от названия, который был бы уникальным и воспроизводимым для каждого заголовка, был бы наиболее подходящим. Доступна ли функция или мне нужно разработать собственный алгоритм?

Есть мысли или идеи по поводу этой или другой стратегии?

8 ответов 8

Вам не нужно писать собственную функцию — за вас это уже сделали другие.
Например, я собрал и сравнил пять хэш-функций VBA в этом ответе stackoverflow

Лично я использую эту функцию VBA

  • вызывается с =BASE64SHA1(A1) в Excel после того, как вы скопировали макрос в модуль VBA
  • требуется .NET, так как он использует библиотеку "Microsoft MSXML" (с поздним связыванием)

Настройка длины хеша

  • первоначально хэш представляет собой строку юникода длиной 28 символов (с учетом регистра и специальных символов).
  • Вы настраиваете длину хеша с помощью этой строки: Const cutoff As Integer = 5
  • 4 цифры хеша = 36 коллизий в 6895 строках = 0,5 % вероятности коллизий
  • Хэш из 5 цифр = 0 конфликтов в 6895 строках = 0 % конфликтов.

Вы также можете просто загрузить этот пример рабочей книги и поиграть со всеми пятью реализациями хеширования. Как видите, на первом листе есть хорошее сравнение

Вухуу. образец листа помог. Я понял, что вставил код в окно OBJECT и excel, а не в окно MODULE.Теперь в моей книге появляются хэши!

Вы можете сделать отсечение параметризованным и необязательным с другим значением по умолчанию, переместив его в список параметров функции Public Function BASE64SHA1(ByVal sTextToHash As String, Optional ByVal cutoff As Integer = 8) и удалив объявление внутри функции.< /p>

Меня не очень интересуют коллизии, но мне нужен слабый псевдорандомизатор строк на основе строкового поля переменной длины. Вот одно безумное решение, которое хорошо сработало:

Где Z2 — это ячейка, содержащая строку, которую вы хотите хэшировать.

"MOD" предназначены для предотвращения переполнения экспоненциальной записью. 1009 — это простое число, можно использовать что угодно X, чтобы X*255 max_int_size . 10 произвольно; использовать что угодно. Значения «иначе» произвольны (здесь цифры числа пи!); использовать что угодно. Расположение символов (1,3,5,7,9) произвольное; использовать что угодно.

Для достаточно небольшого списка вы можете создать скремблер (хеш-функцию для бедных), используя встроенные функции Excel.

Здесь A1 и B1 содержат случайную начальную букву и длину строки.

Немного повозиться и проверить, и в большинстве случаев вы сможете довольно быстро получить работоспособный уникальный идентификатор.

Как это работает. В формуле используется первая буква строки и фиксированная буква, взятая из середины строки, а также LEN() в качестве «функции веера», чтобы уменьшить вероятность коллизий.

ВНИМАНИЕ: это не хэш, но когда вам нужно что-то сделать быстро и вы можете проверить результаты, чтобы убедиться в отсутствии коллизий, это работает очень хорошо.


Зарегистрированный пользователь Дата присоединения 10.11.2015 Расположение Эдинбург, Шотландия Сообщения MS-Off Ver Office 2010 8

Хэширование в Excel

Мне интересно, есть ли способ выполнять хеширование в Excel 2011 (MAC), особенно MD4, MD5 и sha256?

Все темы, которые я нашел на эту тему, были заблокированы в 2011 году или содержали устаревшие ссылки и информацию.

Заранее спасибо за помощь!

Гуру форума Дата регистрации 13 апреля 2005 г. Местоположение Северная Америка MS-Off Ver 2002/XP и 2007 Сообщений 14 069

Первоначальное сообщение от shg


Зарегистрированный пользователь Дата присоединения 10.11.2015 Расположение Эдинбург, Шотландия Сообщения MS-Off Ver Office 2010 8

Первоначальное сообщение от MrShorty


Зарегистрированный пользователь Дата присоединения 10.11.2015 Расположение Эдинбург, Шотландия Сообщения MS-Off Ver Office 2010 8

Я скачал файлы по указанной вами ссылке, и в HTML-файлах присутствует код, который, как мне кажется, является VB. Я попытался скопировать код (боюсь, без опыта работы с VB) и не смог заставить его работать. Я также пытался определить его как макрос, но безрезультатно.

Конкретные рассматриваемые файлы представляли собой zip-файлы 'sha256 дайджест' и 'MD5 дайджест'.

Гуру форума Дата регистрации 13 апреля 2005 г. Местоположение Северная Америка MS-Off Ver 2002/XP и 2007 Сообщений 14 069

Очень жаль, что у вас нет опыта работы с VB, потому что кажется, что ссылка Frez, которую я разместил, предназначена для тех, у кого есть значительный опыт работы с VB. Поскольку у меня нет опыта работы с модулями классов (или каким-либо иным образом пытаюсь импортировать автономный код VB в VBA для приложений), я также не знаю, как импортировать этот код в Excel. Возможно, придет кто-то, кто более опытен в VB, и поможет вам импортировать это в вашу установку VBA.

Испытывали ли вы другие поисковые запросы в Интернете? Я должен верить, что вы не первый человек, который когда-либо хотел хешировать данные в Excel, и что кто-то где-то уже делал это раньше.

(В то же время я начинаю чувствовать себя профессиональным интернет-поисковиком. Кажется, это сэкономило бы нам обоим время, если бы вы вводили эти поисковые запросы в свою любимую поисковую систему в Интернете и пробирались через множество результатов поиска. себя.)

Мы рассмотрим рекомендации по предварительному форматированию и предоставим пошаговые инструкции по использованию нашего скрипта hashingFunction из командной строки.

Следуйте приведенным ниже инструкциям, чтобы вручную хэшировать свои электронные письма, или используйте наше бесплатное приложение Touchless PII Hasher, чтобы сделать это быстро, легко и безопасно.

Обзор

Все электронные письма, загружаемые в Narrative, должны быть псевдонимизированы с помощью одной или нескольких функций хеширования: MD5, SHA-1 или SHA-256. И какую бы функцию вы ни использовали, существуют стандартные методы предварительного форматирования, которые могут помочь обеспечить соответствие другим псевдонимизированным данным.

Инструменты для автоматического форматирования и хеширования

  1. Для небольших списков просто скопируйте нашу таблицу функций хеширования.
  2. Для больших списков используйте наш сценарий hashingFunction и следуйте процедуре командной строки для Mac OS или Windows, подробно описанной ниже.

Предварительное форматирование

  1. нижний регистр весь текст
    Функции хэширования чувствительны к регистру. Поэтому прежде чем псевдонимизировать электронные письма, стандартной практикой является перевод всего текста в нижний регистр.
  2. Удалить лишние символы и пробелы

Любые лишние пробелы или ненужные символы приведут к совершенно другому результату хеширования. Поэтому обязательно удалите:

Функции хеширования

Хеширование можно выполнять с помощью любой из трех распространенных функций хеширования: MD5, SHA1, SHA256.

Чтобы получить максимальную скорость корреспонденции, мы рекомендуем использовать все три функции, в результате чего для каждого электронного письма в вашем списке будет три псевдонимизированных символьных строки.

Как форматировать и хэшировать небольшие списки в Google Таблицах

Наша таблица функций хеширования автоматически выполняет предварительное форматирование и все три функции хеширования.

Шаг 1. Скопируйте список адресов электронной почты и вставьте его, начиная с ячейки A4.

Шаг 2. Расчет электронной таблицы может занять несколько минут. По завершении процесса перейдите на вкладку DOWNLOAD_THIS_SHEET_AS_.CSV_FILE.

Шаг 3. Наконец, перейдите в меню "Файл", выберите "Загрузить" и выберите Значения, разделенные запятыми (.csv, текущий лист). Используйте этот список для загрузки в Narrative.

(На всякий случай у нас также есть таблица Google, которая будет работать для хеширования телефонных номеров, которая удаляет все нечисловые символы перед хешированием: функции хэширования (телефонные номера). Вы можете использовать ту же процедуру, что и выше.)

Как форматировать и хэшировать из командной строки в Mac OS

Наш скрипт hashingFunction автоматически выполняет предварительное форматирование и все три функции хеширования. Его можно скопировать и вставить для одноразового использования или сохранить в вашей системе для многократного использования.

Во-первых, войдите в командную строку, выполнив поиск приложения под названием Терминал.

Для одноразового использования

Шаг 1. Щелкните ссылку здесь, чтобы открыть наш файл hashingFunctionCopyPaste.txt в новой вкладке. Скопируйте текст из файла, вставьте в командную строку и нажмите Enter. (Убедитесь, что вы добавили последний > внизу.)

Шаг 2. Введите файл hashingFunction single-column .csv .

Перетащите файл в Терминал.

Шаг 4. Введите символ > и имя, которое вы хотите назвать для нового хэш-списка. Нажмите Ввод.

ВНИМАНИЕ: НЕ направляйте вывод в файл с тем же именем. Это приведет к удалению содержимого вашего файла.

Шаг 5. Перейдите в свой домашний каталог, чтобы найти обработанный файл.

(На всякий случай у нас также есть скрипт для хеширования телефонных номеров, который удаляет все нечисловые символы перед хэшированием: phoneHashingFunctionCopyPaste.txt. Вы можете использовать ту же процедуру копирования и вставки, что и выше. .)

Чтобы сохранить hashingFunction для постоянного использования

  1. Загрузите скрипт hashingFunction.py. (Control+щелчок и выберите "Сохранить ссылку как").
  2. Поместите файл в папку bin по адресу: /Users/ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ_HERE/bin

Чтобы проверить, есть ли у вас папка bin, перейдите в свой домашний каталог и нажмите Command+Shift+точка, чтобы открыть скрытые папки. Если вы видите папку с именем bin, просто перетащите в нее файл hashingFunction.py.

Если у вас еще нет папки bin, создайте ее в домашнем каталоге. Затем перетащите файл hashingFunction.py в папку.

Проверка результата

При использовании этого процесса для хеширования списка электронных писем мы рекомендуем протестировать hashingFunction в этом тестовом списке электронных писем. Ваш выходной файл должен точно соответствовать следующему:

Как форматировать и хэшировать из командной строки в Windows

Скоро появятся инструкции для Windows

Загрузка списка в повествование

Все списки, загружаемые в Narrative, должны быть в формате .csv. Дополнительные сведения о загрузке списков в целом см. в разделе Как загрузить список идентификаторов.

Читайте также: