base256-chinese约定以及csharp源代码

//仿base64
class Base256
{
	public static string CodeTable = "一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐";
	public static bool Valid(string b256String)
	{
		bool valid = true;
		if (b256String == null)
			valid = false;
		else
		{
			for (int i = 0; i < b256String.Length; i++)
			{
				if (IndexOf(b256String[i]) < 0)
				{
					valid = false;
					break;
				}
			}
		}
		return valid;
	}
	public static string Encode(byte[] bytes)
	{
		char[] encodeString = new char[bytes.Length];
		for (int i = 0; i < bytes.Length; i++)
		{
			int v = bytes[i];
			encodeString[i] = CodeTable[v];
		}
		return new string(encodeString);
	}
	public static byte[] Decode(string b256String)
	{
		byte[] result = null;
		if (!Valid(b256String))
		{
			throw new Exception("Invalid base-256 string.");
		}
		else
		{
			result = new byte[b256String.Length];
			for(int i =0;i<b256String.Length;i++)
			{
				int index = IndexOf(b256String[i]);
				result[i] = (byte)index;
			}
		}
		return result;
	}
	public static int IndexOf(char b256Code)
	{
		int index = -1;
		for (int i = 0; i < CodeTable.Length; i++)
		{
			if (CodeTable[i] == b256Code)
			{
				index = i;
				break;
			}
		}
		return index;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值