C # Криптография, генерирующая ключ - PullRequest
3 голосов
/ 21 декабря 2011

Я пытаюсь зашифровать / расшифровать строку с помощью c #. Я нашел бесчисленные учебники о том, как это, например: это Однако большинство из них предполагают, что у вас уже есть ключ. Итак, мой вопрос:

Как мне сгенерировать ключ?

Спасибо заранее.

Ответы [ 3 ]

4 голосов
/ 21 декабря 2011

Если вы используете классы шифрования в пространстве имен System.Security.Cryptography, используйте класс Rfc2898DeriveBytes (@CodeInChaos указывает, что он заменяет PasswordDeriveBytes) для получения ключа из пароля.

Если случайный ключ в порядке, класс SymmetricAlgorithm имеет метод GenerateKey.

2 голосов
/ 21 декабря 2011

Это зависит от того, как вы обрабатываете ключи.

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

Если вы хотите, чтобы какой-то пароль вводился пользователем, я предлагаю вам использовать класс Rfc2898DeriveBytes.В блоге .NET Security также имеется учебное пособие о Rfc2898DeriveBytes.

.
1 голос
/ 21 декабря 2011

Ну, в зависимости от того, какой ключ вы хотите получить, вы можете сгенерировать его здесь

http://randomkeygen.com/ или https://www.grc.com/passwords.htm

Но какой тип ключа вам нужен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...