Проблема не в использовании RNGCryptoServiceProvider
, а в том, что вы конвертируете результат в base-64.
Согласно документации :
Бесполезный символ "=" используется для конечного заполнения.
Итак, я могу придумать три варианта:
- Прекратите использовать форматирование base-64 (возможно, верните сами байты).
- Примите тот факт, что base-64 использует
=
для заполнения.
- Передайте длину, которая не требует заполнения, например 9.
Пример для пункта 3:
Convert.ToBase64String(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9})
производит
AQIDBAUGBwgJ