Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk mencapai pengekodan dan penyahkodan Base64 URL di C#?

Bagaimana untuk mencapai pengekodan dan penyahkodan Base64 URL di C#?

Mary-Kate Olsen
Lepaskan: 2025-01-25 03:07:11
asal
905 orang telah melayarinya

How to Achieve URL-Safe Base64 Encoding and Decoding in C#?

Pengekodan Base64 selamat URL dalam C#

Pengekodan Base64 adalah penting untuk memastikan integriti data dan kebolehbacaan apabila berurusan dengan aplikasi berasaskan URL. Dalam C#, fungsi pengekodan Base64 terbina dalam menyediakan cara yang mudah untuk menukar data binari kepada perwakilan berasaskan teks. Walau bagaimanapun, ia menambahkan aksara padding ("==") pada rentetan yang dikodkan, yang boleh menyebabkan masalah apabila digunakan dalam URL.

Pengekodan Keselamatan URL

Untuk mengatasi pengehadan ini, pengekodan selamat URL mengalih keluar aksara padding dan menggantikan aksara masalah tertentu (" ","/","=") dengan aksara mesra URL ("-","_","") . Ini memastikan rentetan yang dikodkan boleh dipindahkan dengan selamat ke dalam parameter URL tanpa menyebabkan sebarang isu tafsiran.

Melaksanakan pengekodan selamat URL dalam C#

Tidak seperti perpustakaan Codec Java, C# tidak mempunyai fungsi pengekodan selamat URL terbina dalam. Walau bagaimanapun, anda boleh mencapai hasil yang sama dengan beberapa langkah mudah:

  1. Gunakan Convert.ToBase64String() untuk melaksanakan pengekodan Base64 biasa.
  2. Gunakan TrimEnd() untuk mengeluarkan padding daripada rentetan yang dikodkan.
  3. Gantikan aksara masalah dengan Replace() (contohnya, gantikan " " dengan "-" dan "/" dengan "_").

Contoh

<code class="language-csharp">byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(new char[] {'='}).Replace('+', '-').Replace('/', '_');</code>
Salin selepas log masuk

Nota: Anda boleh menentukan tatasusunan aksara padding sebagai medan baca sahaja statik untuk kecekapan yang dipertingkatkan.

Terbalikkan proses

Untuk menyahkod rentetan yang dikodkan selamat URL kembali kepada bentuk asalnya, hanya terbalikkan proses ini:

  1. Gantikan aksara mesra URL dengan aksara asalnya.
  2. Tampalkan rentetan kepada gandaan 4 dengan aksara '=' jika perlu.
  3. Gunakan Convert.FromBase64String() untuk menukar rentetan kembali kepada data binari.

Contoh

<code class="language-csharp">string incoming = returnValue
    .Replace('_', '/').Replace('-', '+');
switch(incoming.Length % 4) {
    case 2: incoming += "=="; break;
    case 3: incoming += "="; break;
}
byte[] bytes = Convert.FromBase64String(incoming);
string originalText = Encoding.ASCII.GetString(bytes);</code>
Salin selepas log masuk

Dengan menggabungkan langkah-langkah ini, anda boleh melaksanakan pengekodan selamat URL dalam C# dengan berkesan. Adalah penting untuk menguji sama ada kaedah perpustakaan codec yang biasa digunakan adalah konsisten dengan pelaksanaan ini untuk memastikan keserasian dalam senario di mana kesalingoperasian diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk mencapai pengekodan dan penyahkodan Base64 URL di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan