コード例 #1
0
    public static byte[] NativeDecodeToBytes(byte[] data)
    {
        if (null == data || data.Length < 1)
        {
            return(new byte[1]);
        }
        byte[] encodeKey = BakeByte(data[0]);
        byte[] preOr1    = new byte[data.Length - 2];
        byte   orderSeed = data[1];

        Array.Copy(data, 2, preOr1, 0, preOr1.Length);
        byte[] preOr2 = FDRandom.ReOrder(preOr1, orderSeed);
        for (int i = 0; i < (preOr2.Length + 0.1f) / 12.0f; ++i)
        {
            for (int j = 0; j < 12 && i * 12 + j < preOr2.Length; ++j)
            {
                preOr2[i * 12 + j] = (byte)(preOr2[i * 12 + j] ^ encodeKey[j]);
            }
        }
        return(preOr2);
    }