Я пытаюсь зашифровать / расшифровать строку с помощью c #. Я нашел бесчисленные учебники о том, как это, например: это Однако большинство из них предполагают, что у вас уже есть ключ. Итак, мой вопрос:
Как мне сгенерировать ключ?
Спасибо заранее.
Если вы используете классы шифрования в пространстве имен System.Security.Cryptography, используйте класс Rfc2898DeriveBytes (@CodeInChaos указывает, что он заменяет PasswordDeriveBytes) для получения ключа из пароля.
System.Security.Cryptography
Rfc2898DeriveBytes
PasswordDeriveBytes
Если случайный ключ в порядке, класс SymmetricAlgorithm имеет метод GenerateKey.
SymmetricAlgorithm
GenerateKey
Это зависит от того, как вы обрабатываете ключи.
Если вы автоматически генерируете ключ и просто обмениваетесь ключом по некоторому каналу с помощью метода обмена ключами, то вы должны сгенерировать ключ с помощью какого-нибудь сильного генератора случайных чисел, такого какRNGCryptoServiceProvider.На самом деле большинство шифров в .NET генерируют случайный ключ автоматически.
RNGCryptoServiceProvider
Если вы хотите, чтобы какой-то пароль вводился пользователем, я предлагаю вам использовать класс Rfc2898DeriveBytes.В блоге .NET Security также имеется учебное пособие о Rfc2898DeriveBytes.
Ну, в зависимости от того, какой ключ вы хотите получить, вы можете сгенерировать его здесь
http://randomkeygen.com/ или https://www.grc.com/passwords.htm
Но какой тип ключа вам нужен?