Поддержание целостности сообщения

Ваш экземпляр segue отличается от 1 здесь

var instance = ViewControllerB()

Так что вы должны либо представить

self.present(instance,animated:true,completion:nil)

ИЛИ

внутри [ 113]

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "DropDown" {
      let des = segue.destination as! ViewControllerB
      des.delegate = self

    }
}
6
задан Community 23 May 2017 в 12:25
поделиться

5 ответов

Я думаю, что PGP/GPG - то, что Вы хотите здесь.

6
ответ дан 10 December 2019 в 02:53
поделиться

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

Я особенно рекомендовал бы реализацию, описанную в RFC 2104 http://www.ietf.org/rfc/rfc2104.txt, как до этого тщательно думали, избегают большинства вероятных ловушек.

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

Там вероятно некоторая поддержка обоих в библиотеках .NET. Мили услужливо обеспечиваются (как комментарий) ссылку на веб-страницу MSDN для библиотечных функций .NET, реализовывая включенный HMACs использование хеша SHA1: http://msdn.microsoft.com/en-us/library/system.security.cryptography.hmacsha1.aspx.

2
ответ дан 10 December 2019 в 02:53
поделиться

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

1
ответ дан 10 December 2019 в 02:53
поделиться

Необходимо, вероятно, снабдить цифровой подписью сообщение (следовательно, PGP/GPG, рекомендуемый Калием, релевантен как опция). Любой чистый хеш, который можно создать, может быть воссоздан взломщиком. Цифровая подпись - использование Вашего частного ключа подписи так, чтобы Ваш открытый ключ мог использоваться для проверки его - является решением. Что-либо еще - упражнение в тщетности.

0
ответ дан 10 December 2019 в 02:53
поделиться

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

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

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

Как другие упомянули, это - просто ванильная цифровая подпись и может быть обработано чем-то как PGP/GPG

0
ответ дан 10 December 2019 в 02:53
поделиться
Другие вопросы по тегам:

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