Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
Word

Где хранить логины и пароли?

29.07.2020, 18:53. Показов 4199. Ответов 50

Студворк — интернет-сервис помощи студентам
Приветствую!
Есть необходимость сделать авторизацию на документе.
В целом почти проблему решил, в коде прописал логины и пароли, но также есть необходимость, даже обязательно менять пароли (политика компании). так вот необходимо, чтобы у пользователя была возможность сменить пароль, и вот наступает проблема, куда его записывать? В excel понятно, создали скрытый лист и все в нём, а вот в Word не знаю как.
Подскажите пожалуйста!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.07.2020, 18:53
Ответы с готовыми решениями:

Где хранить пароли?
Приветствую уважаемые форумчане. Сильно пожалуйста не не ругайте. Я понимаю что глупый вопрос но всё-же хочется спросить, может кто...

где безопаснее хранить пароли?
Приветствую. На данном этапе храню пароли в файле config.php. Задумался над базой mysql. Соответственно и вопрос, если я буду хранить...

Запоминать данные (логины, пароли) форм в IE
Здравствуйте! Подскажите пожалуйста каким образом можно создать автоматическое заполнение поля (пароли,логины, коды) разных форм в IE? В...

50
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
30.07.2020, 19:28
Студворк — интернет-сервис помощи студентам
Лучше хранить не логин+пароль, а логин+хэш. Тогда их можно хранить, где угодно. Например на скрытом листе книги. Если код программы защищён своим паролем, то без доступа к хэш-функции никто пароль не подберёт
0
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
30.07.2020, 19:34  [ТС]
amd48, в excel я знаю, как это все реализовать, мне нужно в word-е.
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
30.07.2020, 21:12
Цитата Сообщение от КостяФедореев Посмотреть сообщение
мне нужно в word-е
моя невнимательность...
а если куда-нибудь в колонтитул вставлять файл? а потом делать его мааааленьким и невидимым

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub import()
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    ActiveDocument.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", FileName:="D:\Documents\x.xls", LinkToFile:=False, DisplayAsIcon:=False
    ActiveDocument.InlineShapes(1).Fill.Visible = msoFalse
    ActiveDocument.InlineShapes(1).Line.Visible = msoFalse
    ActiveDocument.InlineShapes(1).LockAspectRatio = msoFalse
    ActiveDocument.InlineShapes(1).Height = 0.1
    ActiveDocument.InlineShapes(1).Width = 0.1
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
Sub export()
    Set iShape = ActiveDocument.InlineShapes(1)
    objType = iShape.OLEFormat.ClassType
    iShape.OLEFormat.ActivateAs (objType)
    Application.DisplayAlerts = wdAlertsNone
On Error Resume Next'выводит рантайм-ошибку, но сохраняет
    iShape.OLEFormat.Open
    Set emDoc = iShape.OLEFormat.Object
    emDoc.SaveAs "D:\Documents\x1.xls"
    Application.DisplayAlerts = wdAlertsAll
    emDoc.Close
End Sub
Добавлено через 10 минут
Причём этот шейп можно будет на VBA раскукоживать, потом вручную в этой таблице редактировать список логинов-хэшей, потом скукоживать обратно. А процедура экспорта в файл будет только для её чтения и сверки с введённым пользователем паролем. Процедура экспорта у меня вообще без визуальных эффектов отрабатывала. Ей, похоже, всё равно, что оно в колонтитуле
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
30.07.2020, 21:50
Цитата Сообщение от КостяФедореев Посмотреть сообщение
мне нужно в word-е
Visual Basic
1
2
ThisDocument.Variables.Add "Константин Федореев", "02hRsHt91n"
MsgBox ThisDocument.Variables("Константин Федореев")
2
 Аватар для anton-sf
128 / 64 / 14
Регистрация: 29.03.2015
Сообщений: 265
30.07.2020, 23:40
КостяФедореев, может быть такое прокатит (тестировал в Экселе):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
'Модуль - с функцией в которой храним пароль, пусть будет Модуль1
Friend Function ОченьСкрытыйПароль(Optional ByVal Caller As XlCreator = XlCreator.xlCreatorCode) As String
    'Именять содержимое нижеследующей строки нельзя - где-то в коде есть программная замена содержимого этой строки!
    ОченьСкрытыйПароль = Расшифровать("тут результат шифрования")
End Function
 
'Другой модуль, а может быть и предыдущий - как хотите
Private Function ЗаменитьОченьСкрытыйПароль(ByVal СтарыйПароль As String, НовыйПароль As String) As String
    Dim Модуль As CodeModule    'в котором хранятся пароли
    Dim Начало As Integer       'начальная строка описания функции в которой храним пароль
    Dim Завершение As Integer   'конечная строка описания функции в которой храним пароль
    Dim ТекстКода As String
    Dim Индекс As Integer
    Dim ГдеМенять As Integer
    Dim Сообщение As String
    
    Set Модуль = ThisWorkbook.VBProject.VBComponents("Модуль1").CodeModule
    Начало = Модуль.ProcStartLine("ОченьСкрытыйПароль", vbext_pk_Proc) + 1
    Завершение = Начало + Модуль.ProcCountLines("ОченьСкрытыйПароль", vbext_pk_Proc) - 1
    For Индекс = Начало To Завершение
        ТекстКода = Модуль.Lines(Индекс, 1)
        If ЯСодержу(ТекстКода, "ОченьСкрытыйПароль = Расшифровать(" & """" & Зашифровать(СтарыйПароль) & """" & ")") Then
            ГдеМенять = Индекс
            Exit For
        End If
    Next
    If ГдеМенять = 0 Then
        Сообщение = "Косяк!"
    Else
        ТекстКода = vbTab & "ОченьСкрытыйПароль = Расшифровать(" & """" & Зашифровать(НовыйПароль) & """" & ")"
        Модуль.ReplaceLine ГдеМенять, ТекстКода
        Сообщение = "Успешно, вроде"
    End If
    ЗаменитьОченьСкрытыйПароль = Сообщение
End Function
 
Public Function Зашифровать(ByVal Источник As String) As String
    Dim Результат As String
    '...
    Зашифровать = Результат
End Function
 
Public Function Расшифровать(ByVal Источник As String) As String
    Dim Результат As String
    '...
    Расшифровать = Результат
End Function
 
Public Function ЯСодержу(ByVal Источник As String, ByVal Критерий As String) As Boolean
        If InStr(Источник, Критерий) <> 0 Then ЯСодержу = True
End Function
Добавлено через 5 минут
В Ворде же такая же модель доступа к VB проектам ?

Добавлено через 2 минуты
pashulka, подскажите, в вашем варианте, переменные сохраняются при сохранении файла ?

Добавлено через 42 секунды
(и у меня нет Ворда что бы проверить)
0
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
30.07.2020, 23:56  [ТС]
Господа, спасибо! Не ожидал такого количества решений.
Беру тайм-аут, чтоб переварить и протестировать все.

Параллельно изучаю CustomXMLPart, пока не пойму подойдёт мне это или нет...
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
31.07.2020, 07:40
Кстати, для создания хэша может подойти достаточно простая функция:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Function SHA1(ByVal s As String) As String
    Dim Enc As Object, Prov As Object
    Dim Hash() As Byte, i As Integer
    Set Enc = CreateObject("System.Text.UTF8Encoding")
    Set Prov = CreateObject("System.Security.Cryptography.SHA1CryptoServiceProvider")
    Hash = Prov.ComputeHash_2(Enc.GetBytes_4(s))
    SHA1 = ""
    For i = LBound(Hash) To UBound(Hash)
        SHA1 = SHA1 + Hex(Hash(i) \ 16) + Hex(Hash(i) Mod 16)
    Next
End Function
а создавать хэш:
Visual Basic
1
h=SHA1(login & password)
Если пользователь получает доступ и всё, без деления на роли, то сохранять можно, вообще, только хэш без логина. Ещё секретней будет.
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
31.07.2020, 08:21
Цитата Сообщение от anton-sf Посмотреть сообщение
pashulka, подскажите, в вашем варианте, переменные сохраняются при сохранении файла ?
Добавлено через 42 секунды
(и у меня нет Ворда что бы проверить)
конечно да
0
 Аватар для anton-sf
128 / 64 / 14
Регистрация: 29.03.2015
Сообщений: 265
31.07.2020, 10:19
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
конечно да
тогда вариант от pashulka самый простой
0
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
31.07.2020, 10:25  [ТС]
Цитата Сообщение от pashulka Посмотреть сообщение
1
2
ThisDocument.Variables.Add "Константин Федореев", "02hRsHt91n"
MsgBox ThisDocument.Variables("Константин Федореев")
А где потом эти данные хранятся?
Как их удалять, редактировать?
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
31.07.2020, 11:30
Цитата Сообщение от КостяФедореев Посмотреть сообщение
Как их удалять, редактировать?
Visual Basic
1
2
    ThisDocument.Variables("Константин Федореев") = "111111"
    ThisDocument.Variables("Константин Федореев").Delete
Добавлено через 3 минуты
Цитата Сообщение от КостяФедореев Посмотреть сообщение
А где потом эти данные хранятся?
Это вроде как переменные документа. И вроде как доступны только через VBA и обычный пользователь через обычный интерфейс ворда их никак не увидит
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
31.07.2020, 11:31
в Variables можно закинуть даже роман Война и мир, что даёт возможность с паролем чудить, например 12 слово, 3 буква и т.д. кто на что горазд
0
 Аватар для anton-sf
128 / 64 / 14
Регистрация: 29.03.2015
Сообщений: 265
31.07.2020, 12:12
КостяФедореев, и зашифровать не забудьте )
Цитата Сообщение от amd48 Посмотреть сообщение
Лучше хранить не логин+пароль, а логин+хэш
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
31.07.2020, 15:32
а если всё же в свойствах файла там есть Доступ пользователей кому разрешён доступ к файлу, как оттуда программно считать данные? и ручками добавить у меня не получилось))

Добавлено через 1 час 7 минут
про свойства-моя тема Свойства файла Ворд
так я её тогда и раскачал...
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
31.07.2020, 17:28
Цитата Сообщение от anton-sf Посмотреть сообщение
хэш
Для новичков объясню, что такое хэш.
Хэш - это не пароль, а этакая фотокарточка того, как пользователь СМОГ набрать подходящий пароль.
Представим себе банк и отдел банковских ячеек. На входе стоит (О)хранник. Приходит (П)осетитель.
(П): у меня есть ключ (показывает ключ на вытянутой руке). Я хочу открыть свою ячейку
(О): Да мне, вобщем-то, всё равно, чем вы её откроете). Попробуйте, а там посмотрим
(П): тэкс... <дзынь>. Дверца открылась
(О): точно! как в моём фотоальбоме - Вы с этим ключом в руках и открытая ячейка. Поздравляю. Делайте с ней, что хотите
(П): благодарю

Приходит (В)оришка
(В): у меня етсь связка отмычек. Я хочу открыть вот эту ячейку
(О): ну попробуйте
(В): <хрясь>. Ой, не подошла... А-Аа-аа-а. Только не по голове!.. У меня есть ещё три отмычки!
(О): да я не против. Могу после каждой давать тебе пинка. С меня не убудет

Добавлено через 11 минут
после триллионной попытки...
(В): <дзынь> открылась! Наконец-то
(О): хм. Странно. С каждой новой отмычкой у тебя была то новая шишка, то синяк. В общем-то мне всё равно, но в какой-то другой реальности комбинация твоих шишек и синяков с твоей отмычкой и открытой ячейкой точь-в-точь совпадают с моей фоткой настоящего владельца ячейки с настоящим ключом. Но мне всё равно. Теперь ты её хозяин. Поздравляю!
(В): можно я уже пойду?...

Добавлено через 4 минуты
На следующий день:
(Д)ругой вор смог украсть ключ у владельца ячейки и пришёл в банк.
(Д): у меня есть КЛЮЧ
(О): мне всё равно. Пробуй
(Д): <дзынь>. Открылась!
(О): Ээээ... Погоди-ка. На фотке другой человек! Ты, что, думал меня обмануть? Полиция! Грабят!!

Добавлено через 5 минут
(Т)ретий вор ночью прокрался в банк и в ящике стола охранника нашёл его фотоальбом.
(Т): сейчас я подменю вот эту фотку на свою. Постройка декораций с ячейкой, покупка замка с ключом... Профессиональный фотограф. Оно того стоило.
утром:
(Т): у меня есть ключ!
(О): мне всё равно
(Т): <дзынь>. Открылась!
(О): погоди-ка. На фотке эта ячейка открыта, ты с этим ключом в руках... Что-то здесь не так. А ну-ка давай я тебя сейчас ещё раз сфотографирую на свою нокию 3310... Чтооооо? Совсем не так выглядит!! Полиция! Грабят!!
0
 Аватар для anton-sf
128 / 64 / 14
Регистрация: 29.03.2015
Сообщений: 265
31.07.2020, 17:32
amd48, итого - вычисляем и храним хеш пароля, когда пользователь вводит пароль вычисляем хеш пароля и сравниваем с сохраненным хешем?
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
31.07.2020, 17:37
Пытливый читатель, конечно же, возразит: нокия 3310 не имеет камеры! Так-то оно так. Но у охранника в нашей истории нокия 3310 таки имеет камеру. Эксклюзивная модель! Изготовленную по ГОСТ-2012. Вот найдёте такую же, тогда и приходите

Добавлено через 2 минуты
Цитата Сообщение от anton-sf Посмотреть сообщение
итого
Да. Как с третьим вором. Мало украсть ключ или подделать внешность себя или открытой ячейки. Надо это делать на фотокамеру охранника. По его алгоритму
Никакая нормальная система безопасности не хранит пароли пользователей. Она их не знает. Если вы забыли пароль, то система предложит вам его сменить на новый. Но здесь в дело вступают новые системы: привязанный почтовый ящик, смс-ка на телефон и прочее
0
 Аватар для anton-sf
128 / 64 / 14
Регистрация: 29.03.2015
Сообщений: 265
31.07.2020, 17:40
amd48, а чем это всё отличается от
Цитата Сообщение от anton-sf Посмотреть сообщение
и зашифровать не забудьте )
?
Цитата Сообщение от amd48 Посмотреть сообщение
Пытливый читатель, конечно же, возразит: нокия 3310 не имеет камеры! Так-то оно так. Но у охранника в нашей истории нокия 3310 таки имеет камеру. Эксклюзивная модель! Изготовленную По ГОСТ-2012
Пытливый читатель сразу понял что у охранника нокла
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
31.07.2020, 17:58
Цитата Сообщение от anton-sf Посмотреть сообщение
а чем это всё отличается от
Ну тем, что алгоритмам хэширования важна только воспроизводимость результата шифрования с одними и теми же входными данными. Обратно расшифровывать он её не будет. Для хорошего алгоритма хэширования придумать работающий алгоритм обратного расхэширования (такого слова-то и не существует) - очень затратное мероприятие. На это дело можно положить лучшие годы своей жизни. Пока хацкеры его придумают, умные программисты уже успеют придумать новый алгоритм. Что регулярно и происходит.

Добавлено через 6 минут
ой, навраааал...

Например, берём войну и мир и каждую букву сравниваем с предыдущей + с результатом сравнения предыдущей пары букв. На выходе получим небольшое такое число. Ну чем отличаются друг от друга две буквы и ещё что-нибудь? Одна-кож, если сделать всё то же самое с Гамлетом, то на выходе получим что-то совершенно другое.
Но если случайному прохожему показать эти два числа и спросить, что это, он никогда не догадается, что первое число - это война и мир, а второе - Гамлет. А если как-то и догадается, то весь текст этих великих произведений буква в букву воспроизвести не сможет. Хоть транспарант из этих чисел ему нарисуй. Они ему ничего о войне и мире не скажут
0
 Аватар для anton-sf
128 / 64 / 14
Регистрация: 29.03.2015
Сообщений: 265
31.07.2020, 20:36
amd48, КостяФедореев, если нужно хранить только хеш то какая разница где хранить? Да хоть в ячейке, да ж?

Добавлено через 1 минуту
Цитата Сообщение от amd48 Посмотреть сообщение
Лучше хранить не логин+пароль, а логин+хэш. Тогда их можно хранить, где угодно
Ну точно, так и есть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.07.2020, 20:36

Парсер данных из БД, извлечь логины и пароли пользователей
Нужно сделать следующее: Есть программно созданная база дааных. В этой базе хранятся пароли и логины пользователей. Надо...

Браузеры не сохраняют пароли и логины, google chrome, Opera
Короче, проблема вот в чём: Вот у меня браузер Google Chrome/Opera, вот мой аккаунт для синхронизации данных. Я вошёл в аккаунт и пошла...

Нужно чтоб в программе показало все логины и пароли сохраненные в mail.ru agent
Нужно чтоб в программе показало все логины и пароли сохраненные в mail.ru agent'e, как это реализовать

Как сохранить Пароли и Логины пользователей в коллекции(регистрировать новых юзеров ненадо)
Как сохранить Пароли и Логины пользователей в коллекции(регистрировать новых юзеров ненадо)

Добрый вечер, работяги у меня проблема как сделать checkbox что бы он сохранял логины и пароли в памяти смартфона
Если что я использовал библиотеку implementation 'com.github.rey5137:material:1.2.5' для checkbox и дальше не знаю как сделать что бы он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru