C # Méthode comme Base64String, mais alphanumériques uniquement (pas plus ou barre oblique)

StackOverflow https://stackoverflow.com/questions/933503

Question

est-il une méthode C # qui fonctionne similaire à Convert.ToBase64String mais ne génère rien, sauf la sortie alphanumérique?

Merci!

Était-ce utile?

La solution

Vous êtes probablement à utiliser quelque chose comme Base32 encodage alors. Il y a un codeur Base32 / décodeur pour C # ici par Michael Giagnocavo. Il utilise une combinaison de lettres majuscules et de chiffres.

Il y a aussi une discussion connexe sur StackOverflow .

EDIT: Et si par hasard cela est pour l'encodage base64 connexes URL de sécurité, il suffit de faire base64 et remplacer "+" avec "-" et "/" avec "_". Mais je devine, vous ne voudrez peut-être pour cela.

Autres conseils

Les réponses sont un peu dépassées maintenant. Pour le bénéfice des chercheurs futurs: La meilleure façon de gérer cela maintenant en C # est:

byte[] b; // fill your byte array somehow
string s = System.Web.HttpServerUtility.UrlTokenEncode(b);

renvoie une chaîne codée base64 qui est-safe URL (qui est ce que vous avez dit que vous étiez vraiment après dans les commentaires à votre question).

Vous pouvez ensuite décoder à nouveau en utilisant, vous l'aurez deviné:

byte[] b = System.Web.HttpServerUtility.UrlTokenDecode(s);

vous pouvez remplacer + ou slash avec une chaîne prédéfinie si possible.

Une variante commune de base 64 (pour une utilisation sur la chaîne de requête) est d'utiliser « - » et « _ » à la place de « + » et « / ». Peut-être un peu de Replace(...) à chaque extrémité ferait le travail?

Vous pouvez utiliser BitConverter.ToString () qui vous donnera une chaîne hexagonale. Cependant, les chaînes résultantes seront plus longues que l'encodage base64.

Je cherchais un encodeur et comme je https://github.com/renmengye/ base62-csharp /

Il est un codeur / décodeur dans la plage de l'espace de caractères "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".

Je viens avec ses méthodes enveloppai

System.Text.Encoding.UTF8.GetBytes(plainText); et System.Text.Encoding.UTF8.GetString(decoded);

appelle pour lui permettre de travailler facilement avec des chaînes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top