Files
CroakFang df178687ba update
2022-12-13 22:47:31 +08:00

42 lines
1.2 KiB
C#

using System.Text;
namespace BaseNcoding
{
public class Base256 : Base
{
public const string DefaultAlphabet = "!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁł";
public const char DefaultSpecial = (char)0;
public override bool HasSpecial => false;
public Base256(string alphabet = DefaultAlphabet, char special = DefaultSpecial,
Encoding textEncoding = null)
: base(256, alphabet, special, textEncoding)
{
}
public override string Encode(byte[] data)
{
var result = new char[data.Length];
for (int i = 0; i < data.Length; i++)
result[i] = Alphabet[data[i]];
return new string(result);
}
public override byte[] Decode(string data)
{
unchecked
{
byte[] result = new byte[data.Length];
for (int i = 0; i < data.Length; i++)
result[i] = (byte)InvAlphabet[data[i]];
return result;
}
}
}
}