C # Как мне сделать шифрование? - PullRequest
4 голосов
/ 13 марта 2011

Я не прошу учебник с кодом, я пытаюсь провести исследование, но я хочу убедиться, что задаю правильные вопросы.

  • Какую наилучшую форму шифрования я могу использовать из коробки с .NET?
  • Открытый / закрытый ключ, где я могу безопасно хранить эти вещи?
  • Какие инструменты должны быть у меня для правильной работы?

Я начал с AESCryptoServiceProvider, зашифровал строку, которую я передал, я был счастлив. Проверено, что, если бы я назвал это дважды, это получило бы то же самое значение. Потом понял, что я не предоставил никакой формы ключа, поэтому второй запуск приложения дал другие результаты. Поэтому я начал читать, видеть открытые / закрытые ключи RSA и т. Д. И т. Д. И просто хочу убедиться, что я иду по правильному пути с чтением, которое я делаю. Существует множество примеров, мало кто упоминает, где вы положили эти ключи или откуда вы их взяли.

Ответы [ 3 ]

2 голосов
/ 13 марта 2011

Перейти на AES. Переполнение стека уже имеет замечательную реализацию алгоритма AES в качестве ответа.

2 голосов
/ 13 марта 2011

В System.Security.Cryptography много криптологических функций.

У них есть хэши, крипты, потоки и многое другое.

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

РЕДАКТИРОВАТЬ:
Для генерации ключей вам лучше использовать любой пользовательский ввод, напримерпросто создайте небольшое приложение, которое рассчитало время, необходимое для ввода определенного фрагмента текста на каждую букву.

Или используйте HRNG / TRNG, аппаратный генератор случайных чисел (использует ввод из реального мира, извлеченныйчерез датчики).Или Истинный Генератор Случайных Чисел, в основном также HRNG, но в основном с другими формами ввода, очень продвинутый.
RANDOM.ORG должен быть в состоянии помочь вам.

Если это не такэто чрезвычайно важно, просто ударь головой о клавиатуру и посмотри на результаты:).

0 голосов
/ 19 февраля 2015

Что касается «Открытого / закрытого ключа, где я могу надежно хранить эти вещи?», Я рекомендую вам не изобретать велосипед заново.Microsoft уже потратила огромные усилия на создание и активно поддерживает и (надеюсь) совершенствует инфраструктуру для хранения закрытых ключей: https://msdn.microsoft.com/en-us/library/windows/desktop/bb204778%28v=vs.85%29.aspx. Вы можете использовать хранилище собственного ключа.

...