Я использую HMACSHA512 для хеширования данных с использованием общего ключа. Поскольку ключ является общим, я бы хотел, чтобы в нем были все печатные символы для удобства транспортировки. Мне интересно, каков наилучший подход к генерации этих ключей.
В настоящее время я использую метод GetBytes () RNGCryptoServiceProvider для генерации ключа, но возвращаемый байтовый массив содержит непечатаемые символы. Поэтому мне интересно, безопасно ли кодировать base64 результат или это слишком сильно размывает случайность и делает вещи намного менее безопасными? Если это не очень хороший подход, можете ли вы предложить его?
Я понимаю, что, ограничивая ключи печатаемыми символами, я ограничиваю общую ширину пространства ключей (т. Е. Отключая 1 из 8 битов), но я согласен с этим.