コード例 #1
0
    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);
    }