Posts tagged tinyurl

Posted 2 years ago

Tiny Url’s in C#


using System;

namespace base58
{
class Program
{
public static String sBase58Alphabet = “123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ”;

static void Main(string[] args)
{
Console.WriteLine(EncodeBase58(3663063759));
Console.WriteLine(DecodeBase58(EncodeBase58(3663063759)));

Console.ReadKey();
}

public static String EncodeBase58(UInt32 numberToShorten)
{
String sConverted = “”;
Int32 iAlphabetLength = sBase58Alphabet.Length;

while (numberToShorten > 0)
{
long lNumberRemainder = (numberToShorten % iAlphabetLength);
numberToShorten = Convert.ToUInt32(numberToShorten / iAlphabetLength);
sConverted = sBase58Alphabet[Convert.ToInt32(lNumberRemainder)] + sConverted;
}

return sConverted;
}

public static long DecodeBase58(String base58StringToExpand)
{
long lConverted = 0;
long lTemporaryNumberConverter = 1;

while (base58StringToExpand.Length > 0)
{
String sCurrentCharacter = base58StringToExpand.Substring(base58StringToExpand.Length - 1);
lConverted = lConverted + (lTemporaryNumberConverter * sBase58Alphabet.IndexOf(sCurrentCharacter));
lTemporaryNumberConverter = lTemporaryNumberConverter * sBase58Alphabet.Length;
base58StringToExpand = base58StringToExpand.Substring(0, base58StringToExpand.Length - 1);
}

return lConverted;
}
}
}