Статус: Новичок
Группы: Участники
Зарегистрирован: 03.02.2014(UTC) Сообщений: 7 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Возможно ли подписывать строки в таблице базы данных SQL? И в той же строке в отдельном поле вписывать саму электронную подпись в каком-либо виде? При этом все должно делаться с клиентских рабочих мест, а строки подписываться ключами пользователей рабочих мест. Т.е. каждая строка в базе должна подписывается ключом пользователя, который сделал запись в эту строку.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Задача на самом деле изначально далека от постановки подписи.
Для начала необходимо решить такую задачу: 1) У каждого пользователя на локальном компьютере есть скажем файл с его идентификационным номером ID (1,2,3 и т.д); 2) Есть сервер скажем в сети предприятия; 3) Надо на каждое изменение строки в какой-то таблице в базе обратиться с сервера к локальному файлу с ID пользователя, который это изменение сделал, и записать этот номер дополнением к данным для текущей транзакции;
Если сможете решить эту первичную задачу, то потом достаточно просто будет добавлять и подпись. Но, на мой взгляд, и эту упрощённую задачу решить достаточно сложно.
Как мне кажется тут нужно будет писать внешнюю хранимую процедуру для SQL (на C++ или C#), потом ставить тригеры на каждую таблицу базы, а также писать Web-сервис, который бы работал на машине каждого пользователя. Тогда теоритически первичная задача может быть решена. |
С уважением, Юрий Строжевский |
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,476 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2243 раз в 1749 постах
|
Автор: Kip ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Возможно ли подписывать строки в таблице базы данных SQL? И в той же строке в отдельном поле вписывать саму электронную подпись в каком-либо виде? При этом все должно делаться с клиентских рабочих мест, а строки подписываться ключами пользователей рабочих мест. Т.е. каждая строка в базе должна подписывается ключом пользователя, который сделал запись в эту строку. Общие вопросы » Подпись в базе данных |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.02.2014(UTC) Сообщений: 7 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Автор: Андрей * ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Автор: Kip ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Возможно ли подписывать строки в таблице базы данных SQL? И в той же строке в отдельном поле вписывать саму электронную подпись в каком-либо виде? При этом все должно делаться с клиентских рабочих мест, а строки подписываться ключами пользователей рабочих мест. Т.е. каждая строка в базе должна подписывается ключом пользователя, который сделал запись в эту строку. Общие вопросы » Подпись в базе данных Спасибо. С теорией все понятно. Хотелось бы помощи в практической реализации. Вижу два способа: 1. Использовать исходник на С из пакета SDK 2. Использовать интерфейс CryptoAPI 1 - мне не очень подходит, т.к. весь мой софт на Delphi 2 - выходит, что единственный мой путь. Однако, где почитать или/и посмотреть как обратиться к этому интерфейсу и как с ним работать (функции, их описание)? Функции получается нужны пока следующие: - получение хэша из стринговой строки (суммы всех ячеек из строки базы данных) - подписание этого хэша - проверка подписи В описание несколько раз натыкаюсь на "Руководство программиста". Где его взять? Отредактировано пользователем 4 февраля 2014 г. 3:05:55(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,476 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2243 раз в 1749 постах
|
|
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Андрей * за этот пост.
|
Kip оставлено 06.02.2014(UTC)
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.02.2014(UTC) Сообщений: 7 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Немного разобрался. Получается подписать любую строку и проверить ее подпись.
Не понятно следующее, как при проверке из подписи получить данные о подписчиках? типа такие: Certificate.SerialNumber Certificate.SubjectName
использую Capicom.dll и CAPICOM_TLB.pas
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,476 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2243 раз в 1749 постах
|
Автор: Kip ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Немного разобрался. Получается подписать любую строку и проверить ее подпись.
Не понятно следующее, как при проверке из подписи получить данные о подписчиках? типа такие: Certificate.SerialNumber Certificate.SubjectName
использую Capicom.dll и CAPICOM_TLB.pas Логично поискать описание Certificate* хотя бы в pas, раз SDK и MSDN не помогают SignedData.Certificates http://msdn.microsoft.co...p/aa387723(v=vs.85).aspx |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.02.2014(UTC) Сообщений: 7 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Было бы так просто я бы не спрашивал. В описании нет того что я спрашиваю! Забыли.... Разобрался. SignedData.Certificates.Item[1].SerialNumber SignedData.Certificates.Item[1].SubjectName Отредактировано пользователем 7 февраля 2014 г. 2:20:28(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.02.2014(UTC) Сообщений: 7 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
В чем загвоздка capicom-а?
Подписываю так: oSignedData.Sign(oSigner, True, CAPICOM_ENCODE_BINARY);
все хорошо, проверка проходит.
пытаюсь подписать вторым сертификатом: oSignedData.CoSign(oSigner, CAPICOM_ENCODE_BINARY);
получаю ошибку: "The message has not been signed."
Или это решается только cades-ом?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,476 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2243 раз в 1749 постах
|
Автор: Kip ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) В чем загвоздка capicom-а?
Подписываю так: oSignedData.Sign(oSigner, True, CAPICOM_ENCODE_BINARY);
все хорошо, проверка проходит.
пытаюсь подписать вторым сертификатом: oSignedData.CoSign(oSigner, CAPICOM_ENCODE_BINARY);
получаю ошибку: "The message has not been signed."
Или это решается только cades-ом? CAPICOM - позволяет добавлять несколько подписей. Вероятно у Вас ошибка в 17 строке. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close