Skip to content

Instantly share code, notes, and snippets.

@thebitbrine
Created April 25, 2019 17:42
Show Gist options
  • Save thebitbrine/07e7befdad67b0d8d01d9eb4e80aa028 to your computer and use it in GitHub Desktop.
Save thebitbrine/07e7befdad67b0d8d01d9eb4e80aa028 to your computer and use it in GitHub Desktop.
public string Base64Encode(string plainText)
{
Dictionary<char, int> Base64Table = new Dictionary<char, int>()
#region Table
{
{'+',62},
{'/',63},
{'0',52},
{'1',53},
{'2',54},
{'3',55},
{'4',56},
{'5',57},
{'6',58},
{'7',59},
{'8',60},
{'9',61},
{'A',0},
{'B',1},
{'C',2},
{'D',3},
{'E',4},
{'F',5},
{'G',6},
{'H',7},
{'I',8},
{'J',9},
{'K',10},
{'L',11},
{'M',12},
{'N',13},
{'O',14},
{'P',15},
{'Q',16},
{'R',17},
{'S',18},
{'T',19},
{'U',20},
{'V',21},
{'W',22},
{'X',23},
{'Y',24},
{'Z',25},
{'a',26},
{'b',27},
{'c',28},
{'d',29},
{'e',30},
{'f',31},
{'g',32},
{'h',33},
{'i',34},
{'j',35},
{'k',36},
{'l',37},
{'m',38},
{'n',39},
{'o',40},
{'p',41},
{'q',42},
{'r',43},
{'s',44},
{'t',45},
{'u',46},
{'v',47},
{'w',48},
{'x',49},
{'y',50},
{'z',51}
};
#endregion
long Decimal = long.Parse(plainText);
Stack s = new Stack();
do
{
s.Push(Decimal % 64);
Decimal /= 64;
} while (Decimal != 0);
string Output = "";
foreach (var Char in s.ToArray())
{
Output += Base64Table.FirstOrDefault(x => x.Value == int.Parse(Char.ToString())).Key;
}
return Output;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment