C # metodo come Base64String, ma solo alfanumerici (senza più o barra)
-
06-09-2019 - |
Domanda
Esiste un metodo C # che funziona in modo simile a Convert.ToBase64String ma non genera nulla, tranne uscita alfanumerico?
Grazie!
Soluzione
Probabilmente stai cercando di utilizzare qualcosa come la codifica Base32 poi. C'è un encoder Base32 / decoder per C # qui di Michael Giagnocavo. Esso utilizza una combinazione di lettere maiuscole e numeri.
C'è anche spiegazioni dettagliate sulla StackOverflow qui .
Modifica E se per caso questo è per la codifica Base64 correlate sicuro per le URL, basta fare Base64 e sostituire "+" con "-" e "/" con "_". Ma sto cercando di indovinare, non si può decidere per questo.
Altri suggerimenti
Le risposte sono un po 'obsolete ora. A vantaggio dei ricercatori futuri: Il modo migliore per gestire questa ora in C # è:
byte[] b; // fill your byte array somehow
string s = System.Web.HttpServerUtility.UrlTokenEncode(b);
Questo restituisce una stringa con codifica Base64 che è sicuro per le URL (che è quello che hai detto che eri davvero dopo nei commenti alla tua domanda).
È quindi possibile decodificare nuovamente utilizzando, avete indovinato:
byte[] b = System.Web.HttpServerUtility.UrlTokenDecode(s);
è possibile sostituire + o tagliare con una certa stringa predefinita, se possibile.
Una variante comune di base 64 (per l'uso su stringa di query) consiste nell'utilizzare '-' e '_' al posto di '+' e '/'. Forse un po 'di Replace(...)
ad ogni estremità farebbe il lavoro?
È possibile utilizzare BitConverter.ToString (), che vi darà una stringa esadecimale. Tuttavia le stringhe risultanti saranno più di codifica Base64.
ero alla ricerca di un tale come encoder e ho usato https://github.com/renmengye/ base62-csharp /
Si tratta di un codificatore / decodificatore nella gamma spazio carattere "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".
Ho appena avvolto i suoi metodi con
System.Text.Encoding.UTF8.GetBytes(plainText);
e
System.Text.Encoding.UTF8.GetString(decoded);
chiamate per consentire di lavorare facilmente con le stringhe.