匠迹众包   
                             34人浏览/1人投稿   
                            
                                
                                211天前   
                            
                            
                            待托管赏金
                        
                        void Crypto (void* Data, int DataLength, void* Key, int KeyLength)
    {
        int i = 0, j = 0;
        unsigned char k[256] = { 0 }, s[256] = { 0 };
        unsigned char tmp = 0;
        for (i = 0; i < 256; i++)
        {
            s[i] = (unsigned char)i;
            k[i] = ((unsigned char*)Key)[i % (unsigned int)KeyLength];
        }
        for (i = 0; i < 256; i++)
        {
            j = (j + s[i] + k[i]) % 256;
            tmp = s[i];
            s[i] = s[j];
            s[j] = tmp;
        }
        int t = 0;
        unsigned long l = 0;
        i = 0, j = 0, tmp = 0;
        for (l = 0; l < (unsigned int)DataLength; l++)
        {
            i = (i + 1) % 256;
            j = (j + s[i]) % 256;
            tmp = s[i];
            s[i] = s[j];
            s[j] = tmp;
            t = (s[i] + s[j]) % 256;
            ((unsigned char*)Data)[l] ^= s[t];
        }
    }
改成易语言。参数1 Data 字节集,参数2 Key 字节集,无返回值
接单1天内完成任务