Как В цифровой форме “Подписать” документ

def hangman():
    j=0
    word='weekend'
    new_word=len(word)*'_'
    while j<20:
        letter=input('Give a letter: ')
        print("letter =" + letter)
        for i in range(len(word)):
            if word[i]==letter and new_word[i]=='_':
                new_word = list(new_word)
                new_word[i] = letter
                new_word = ''.join(new_word)
        if new_word.replace(' ','')==word:
            print('You won!')
            break    
        j+=1
        print(new_word)

hangman()

Этот код делает то, что вы хотите сделать. Ошибки в исходном коде:

`new_word=len(word)*'_ '`

(обратите внимание на пробел в конце. Это испортило индексацию)

new_word=new_word.replace(new_word[i],letter)

Это привело к замене new_word на letter! Таким образом, стало wwwwwww (если кто-то вошел в w)

        new_word = list(new_word)
        new_word[i] = letter
        new_word = ''.join(new_word)

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

10
задан Joel Coehoorn 9 December 2011 в 17:26
поделиться

11 ответов

Существуют бесчисленные подходы, обсужденные в Прикладной Криптографии Schneier.

Большая часть того, что Вы ищете, сводится к Алгоритму цифровой подписи (DSA) - которых NIST имеет один, асимметричные алгоритмы шифрования могут обеспечить и т.д.

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

2
ответ дан 4 December 2019 в 01:03
поделиться

Существует определение правовых регулирований, что квалифицирует как цифровая подпись (электронная подпись или "eSignature"). В США существует действие, названное "Универсальный Электронный закон о Транзакциях" (UETA), описывая, как цифровая подпись определяется и используется в легальном контексте.

В основном следующие компоненты могут быть включены:

  1. Электронный документ, представляя форму с юридическими обязательствами, когда подпись применяется.
  2. Цифровой сигнал (изображение, звук, и т.д.) примененный дополнительно к вышеупомянутому документу, служа подписью, т.е. по закону принятым доказательством одобрения документа. (Самый простой пример применяет прозрачное изображение рукописной подписи человека на документ в формате PDF.)
  3. Пара ключей цифрового сертификата (с проверкой от утвержденных Центров сертификации) для "вмешательства изоляции" документ. Используя закрытый ключ для "подписывания" документа законные власти могут использовать открытый ключ для проверки целостности документа.
  4. Система "хранилища", чтобы хранить изолированный трамбовкой документ для более поздних легальных запросов.

Можно утверждать, что не все шаги необходимы; однако, в определенных отраслях промышленности, шаг 3 и 4 требуется правовыми регулированиями, поскольку они определяются для предотвращения подделки или спуфинга. В результате шаг 3 наиболее вероятен, работают / с Нотариусом, и иногда выполняемый вместе с шагом 2.

Для шага 2 и 3 API и примеры доступны в Интернете. PDF Adobe API может иметь дело с обоими шагами и некоторыми компонентами с открытым исходным кодом, может иметь дело с отдельными шагами. Один такой пример использования компонента с открытым исходным кодом, iTextSharp, находится в CodeProject: документы в формате PDF электронного подписания с iTextSharp. Для получения дополнительной информации о eSignature в целом, посмотрите на Электронную подпись страницы Wikipedia.

6
ответ дан 4 December 2019 в 01:03
поделиться

Термин "подпись" используется немного свободно в этом контексте. Это не означает кого-то использующего почерк ставить их подпись - это означает иметь отпуск человека своего рода цифровые данные, которые доказывают, что они утвердили документ.

Adobe Acrobat имеет способность сделать цифровые подписи.

0
ответ дан 4 December 2019 в 01:03
поделиться

Теперь, когда Вы разъяснили то, в чем Вы нуждаетесь, я думаю, что лучшее решение к:

  1. Сделайте веб-сайт
  2. Дайте людям уникальные логины с паролями
  3. Позвольте им просматривать документы
  4. Имейте форму, где они устанавливают флажок, который говорит, что "Я соглашаюсь на такой-то и такой-то"

Вы, вероятно, также захотите включать идею "групп", таким образом, можно будет выставить определенные документы просто "Acme Co. Поставка Отдела" и позволяет любому члену той группы выходить на тех документах.

1
ответ дан 4 December 2019 в 01:03
поделиться

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

Затем необходимо ли найти способ сохранить закрытый ключ каждого человека безопасным - как тот человек может использовать его, но никто больше? Существует большая творческая работа, продолжающаяся в этой области прямо сейчас. Часть его требует, чтобы каждый человек нес аппаратный ключ (карта, карта флэш-памяти, безотносительно), который должен использоваться для подписания каждого документа. Иногда закрытые ключи хранятся в базе данных, и подписывающее лицо должно обеспечить пароль для подписания документа.

Пара ключей применяется к документу путем создания хеша документа и затем шифрования хеша с помощью закрытого ключа. Зашифрованный хеш является 'цифровой подписью' и присоединен к документу. Так как никто кроме подписывающего лица не может использовать закрытый ключ (предположительно), Вы знаете, что подпись подлинна.

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

2
ответ дан 4 December 2019 в 01:03
поделиться

Существует два способа ответить на этот вопрос:

  • Какие технические средства я могу использовать для получения цифровых подписей?
  • Какие средства получения цифровых подписей я могу использовать, который поддержит против (вставьте процесс внутренней проверки здесь)?

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

0
ответ дан 4 December 2019 в 01:03
поделиться

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

0
ответ дан 4 December 2019 в 01:03
поделиться

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

0
ответ дан 4 December 2019 в 01:03
поделиться

Вопрос, который необходимо задать, "какой цели физическая подпись служит?" "Цифровая подпись" служит различным целям, чем физическая. И физическая подпись освобождает в значительной степени все свое значение на отсканированном документе.

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

0
ответ дан 4 December 2019 в 01:03
поделиться

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

0
ответ дан 4 December 2019 в 01:03
поделиться

Искал систему для этого, я только что нашел docshaker.com на killerstartups. Это в значительной степени позволяет вам делать то, что вы только что описали Ниллу.

-1
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: