как мне сделать строку base64 аккуратной и упорядоченной?

#c#

#c#

Вопрос:

как мне сделать строку base64 аккуратной и упорядоченной?

пример строки abcdefghijklmnopqrstuvwxyz :

YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo =

(неправильно)

YWJjZGVmZ2hpamtsb

W5vcHFyc3R1dnd4eXo =

(справа)

Я преобразую строку в base64 с помощью Convert.ToBase64String (текст), но результаты не аккуратные и очень длинные.

мой код :

 public static string encryptText(string text, int keysize, string publickeyxml)
{
  var data = algorithm(Encoding.UTF8.GetBytes(text), keysize, publicKeyxml);
  return Convert.ToBase64String(data);
}


public static byte[] algorithm(byte[] text, int keysize, string publickeyxml)
{
  using (var provider = new RSACryptoServiceProvider(keysize))
  {
  provider.FromXmlString(publickeyxml);
  return provider.Encrypt(text, OAEP);
  }
}

string plaintext = "abcdefghijklmnopqrstuvwxyz";
ciphertext =  encryptText(plaintext, keysize, publickey);

string ciphertext;
string publickey = "mypublickey"
  

вывод = kZbKD35 uxg5mhcXjWTmBtF5xhIjIZ0SVbI2bsUHdcO Pe9/n0MSaKcKznNJkR1hxvbCTfBnUnQ5zoLZ9pjW/s99qqPmwsha5EoMIXphljPLVPFA31aB9MKuqyW4rynf8MzR9cDK2N3nfsNnGS54OdnSVmwaS1mYiEP6Fhu2qjFAxwbu6RVyD5yuqYTVDYSxo99P2sJBHrSO2MaNeZSRyPCmu7rTqpZ6zxSVYETGS9Bfc1XbKq/ujA8SZB68Lmy/KTqEqXrGpKcw6vXxAca2phRcT92s70K7zOoF2 L5WrHN8fH9zMXnB64JjARVrNPkTrRPZS1pYu8USZNnla5Qaw==

Комментарии:

1. Определите «аккуратный». В представлении данных на base64 не должно быть разрывов строк, и никто в здравом уме не стал бы пытаться «прочитать» строку на base64. Вы обрабатываете их в программе, поэтому никого не волнует, как они выглядят.

2. ToBase64String(data, Base64FormattingOptions.InsertLineBreaks) ?

3. Обратите внимание, что вы, вероятно, преобразуете не строку в base64, а bytearray, то есть, если вы на самом деле используете приличный алгоритм шифрования.

4. Не смотрите на это, в этом нет смысла.

5. Когда вы кодируете что-либо в base64, это дает один и только один правильный результат. Вы не можете получить другой результат, потому что считаете, что это не аккуратно. Это все равно, что спросить: «Я добавляю 2 числа, но я не думаю, что результат аккуратный. Как я могу сделать ее аккуратной?»

Ответ №1:

Это то, что я имею в виду, спасибо @GSerg

 Convert.ToBase64String(data, Base64FormattingOptions.InsertLineBreaks)