public static byte[] NativeEncodeToBytes(byte[] data) { byte tag = (byte)FDRandom.Range(0, 256); byte orderseed = (byte)FDRandom.Range(0, 256); byte[] encodeKey = BakeByte(tag); for (int i = 0; i < (data.Length + 0.1f) / 12.0f; ++i) { for (int j = 0; j < 12 && i * 12 + j < data.Length; ++j) { data[i * 12 + j] = (byte)(data[i * 12 + j] ^ encodeKey[j]); } } byte[] prebase64_1 = new byte[data.Length + 2]; byte[] prebase64_2 = FDRandom.DisOrder(data, orderseed); prebase64_1[0] = tag; prebase64_1[1] = orderseed; prebase64_2.CopyTo(prebase64_1, 2); return(prebase64_1); }