Base64の=はパディングだったことを知りました。
まったく意識していなかったのですが、WebAPIなどではパディングなしが求められることもあります。 無意識にBase64エンコードするとパディングありの結果が出力されていることもあるので、少し注意が必要です。
C#でno paddingなBase64エンコードしたい場合は以下でできました。
string input = "...."; var base64encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(input)).TrimEnd('=');
TrimEndは末尾の文字が連続してもぜんぶ両方Trimしてくれるので、これでno paddingにできます。
今回、inputはマルチバイトではない文字を想定していたので、UTF8エンコードでバイト列に変換しましたが、 マルチバイト文字の場合は正しいエンコードを選択する必要がありそうです。