Вызов GenerateKey сгенерирует новый, случайный безопасный (т. Е. Не слабый) ключ. Его длина (128 или 192) будет зависеть от того, как настроен ваш TripleDESCryptoServiceProvider
.
Если я вызываю метод провайдера GenerateKey, это просто строка в кодировке 64?
Сам формат представляет собой массив byte[]
, поскольку вы можете извлечь его только из свойства Key
- так что это , а не base64, но при желании его можно легко закодировать таким образом, например Convert.ToBase64String(algo.Key);
Если это так, могу ли я безопасно его расшифровать, например, использовать полученную строку в качестве ключа?
Вы не можете использовать строку в качестве ключа - нет, если вы не конвертируете ее обратно в byte[]
. Однако вы можете хранить ключ как строку между его использованием (если это поможет вашему приложению).
На немного другой ноте, есть ли проблема с использованием этого же ключа в качестве солт-ключа при выполнении односторонних хэшей?
Если вы используете случайные данные в качестве ключа или в качестве соли , то проблем быть не должно. Только не используйте одни и те же данные для и ( и ).