///////////////////////////////////////////////////////////////////////////////////////// ////////////////////////// RC4 Encryption ////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// LPBYTE RC4(LPBYTE lpBuf, LPBYTE lpKey, DWORD dwBufLen, DWORD dwKeyLen) { int a, b = 0, s[256]; BYTE swap; DWORD dwCount; for(a = 0; a < 256; a++) { s[a] = a; } for(a = 0; a < 256; a++) { b = (b + s[a] + lpKey[a % dwKeyLen]) % 256; swap = s[a]; s[a] = s[b]; s[b] = swap; } for(dwCount = 0; dwCount < dwBufLen; dwCount++) { a = (a + 1) % 256; b = (b + s[a]) % 256; swap = s[a]; s[a] = s[b]; s[b] = swap; lpBuf[dwCount] ^= s[(s[a] + s[b]) % 256]; } return lpBuf; }
jeudi 3 janvier 2013
RC4 in C++
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire