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
в этот индекс. Мы конвертируем список обратно в строку позже.
Существуют бесчисленные подходы, обсужденные в Прикладной Криптографии Schneier.
Большая часть того, что Вы ищете, сводится к Алгоритму цифровой подписи (DSA) - которых NIST имеет один, асимметричные алгоритмы шифрования могут обеспечить и т.д.
Простой маршрут должен был бы собрать доставку и считать получения на электронной почте, но это не является надежным.
Существует определение правовых регулирований, что квалифицирует как цифровая подпись (электронная подпись или "eSignature"). В США существует действие, названное "Универсальный Электронный закон о Транзакциях" (UETA), описывая, как цифровая подпись определяется и используется в легальном контексте.
В основном следующие компоненты могут быть включены:
Можно утверждать, что не все шаги необходимы; однако, в определенных отраслях промышленности, шаг 3 и 4 требуется правовыми регулированиями, поскольку они определяются для предотвращения подделки или спуфинга. В результате шаг 3 наиболее вероятен, работают / с Нотариусом, и иногда выполняемый вместе с шагом 2.
Для шага 2 и 3 API и примеры доступны в Интернете. PDF Adobe API может иметь дело с обоими шагами и некоторыми компонентами с открытым исходным кодом, может иметь дело с отдельными шагами. Один такой пример использования компонента с открытым исходным кодом, iTextSharp, находится в CodeProject: документы в формате PDF электронного подписания с iTextSharp. Для получения дополнительной информации о eSignature в целом, посмотрите на Электронную подпись страницы Wikipedia.
Термин "подпись" используется немного свободно в этом контексте. Это не означает кого-то использующего почерк ставить их подпись - это означает иметь отпуск человека своего рода цифровые данные, которые доказывают, что они утвердили документ.
Adobe Acrobat имеет способность сделать цифровые подписи.
Теперь, когда Вы разъяснили то, в чем Вы нуждаетесь, я думаю, что лучшее решение к:
Вы, вероятно, также захотите включать идею "групп", таким образом, можно будет выставить определенные документы просто "Acme Co. Поставка Отдела" и позволяет любому члену той группы выходить на тех документах.
Каждому человеку, который мог бы подписать цифровой документ, нужна пара "открытый/закрытый ключ", присвоенная им, которые не могут быть подделаны.
Затем необходимо ли найти способ сохранить закрытый ключ каждого человека безопасным - как тот человек может использовать его, но никто больше? Существует большая творческая работа, продолжающаяся в этой области прямо сейчас. Часть его требует, чтобы каждый человек нес аппаратный ключ (карта, карта флэш-памяти, безотносительно), который должен использоваться для подписания каждого документа. Иногда закрытые ключи хранятся в базе данных, и подписывающее лицо должно обеспечить пароль для подписания документа.
Пара ключей применяется к документу путем создания хеша документа и затем шифрования хеша с помощью закрытого ключа. Зашифрованный хеш является 'цифровой подписью' и присоединен к документу. Так как никто кроме подписывающего лица не может использовать закрытый ключ (предположительно), Вы знаете, что подпись подлинна.
Можно проверить подпись путем дешифрования хеша с помощью открытого ключа, который доступен всем. Если дешифрованный хеш не соответствует, то или документ был изменен после того, как он был подписан, или он был подписан кем-то еще.
Существует два способа ответить на этот вопрос:
Если они только для Ваших собственных записей, то второй вопрос не важен. Иначе отдел аудита Вашей организации будет иметь мнение.
Вы управляете людьми, Вы взаимодействуете с таким образом, что Вы могли заставить их создать ключи GPG и использовать их для подписания документов? Если так, проблема решена.
одна вещь, которую мы изучали, использует небольшую сенсорную панель на ноутбуках для получения клиентских подписей. Когда Вы думаете об этом, это очень не отличается, чем небольшая вещь, которую Вы используете для расписываний за доставки UPS. Мы нашли несколько API, плавающих вокруг с небольшим усилием до сих пор.
Вопрос, который необходимо задать, "какой цели физическая подпись служит?" "Цифровая подпись" служит различным целям, чем физическая. И физическая подпись освобождает в значительной степени все свое значение на отсканированном документе.
То, что Вы, вероятно, хотите, является просто способом для людей сказать "да, я соглашаюсь с этим". В этом случае Вам просто нужен веб-сайт, в который они могут войти и установить флажок.
Существует программное обеспечение для добавления компонента цифровой безопасности к рукописной подписи. Подпись получена с помощью своего рода устройства сенсорной панели и сохранена в документе. Затем программное обеспечение снабжает цифровой подписью весь документ включая графическую подпись, чтобы доказать, что документ не был изменен, так как подпись была применена.
Искал систему для этого, я только что нашел docshaker.com на killerstartups. Это в значительной степени позволяет вам делать то, что вы только что описали Ниллу.