資源簡(jiǎn)介
rc4的c++算法實(shí)現(xiàn),包含加密解密過(guò)程的完整代碼,簡(jiǎn)單的實(shí)現(xiàn)了rc4

代碼片段和文件信息
/*
?*?Copyright?1995-2016?The?OpenSSL?Project?Authors.?All?Rights?Reserved.
?*
?*?Licensed?under?the?OpenSSL?license?(the?“License“).??You?may?not?use
?*?this?file?except?in?compliance?with?the?License.??You?can?obtain?a?copy
?*?in?the?file?LICENSE?in?the?source?distribution?or?at
?*?https://www.openssl.org/source/license.html
?*/
#include?
#include?“rc4_locl.h“
/*-
?*?RC4?as?implemented?from?a?posting?from
?*?Newsgroups:?sci.crypt
?*?From:?sterndark@netcom.com?(David?Sterndark)
?*?Subject:?RC4?Algorithm?revealed.
?*?Message-ID:?
?*?Date:?Wed?14?Sep?1994?06:35:31?GMT
?*/
void?RC4(RC4_KEY?*key?size_t?len?const?unsigned?char?*indata
?????????unsigned?char?*outdata)
{
????register?RC4_INT?*d;
????register?RC4_INT?x?y?tx?ty;
????size_t?i;
????x?=?key->x;
????y?=?key->y;
????d?=?key->data;
#define?LOOP(inout)?\
????????????????x=((x+1)&0xff);?\
????????????????tx=d[x];?\
????????????????y=(tx+y)&0xff;?\
????????????????d[x]=ty=d[y];?\
????????????????d[y]=tx;?\
????????????????(out)?=?d[(tx+ty)&0xff]^?(in);
????i?=?len?>>?3;
????if?(i)?{
????????for?(;;)?{
????????????LOOP(indata[0]?outdata[0]);
????????????LOOP(indata[1]?outdata[1]);
????????????LOOP(indata[2]?outdata[2]);
????????????LOOP(indata[3]?outdata[3]);
????????????LOOP(indata[4]?outdata[4]);
????????????LOOP(indata[5]?outdata[5]);
????????????LOOP(indata[6]?outdata[6]);
????????????LOOP(indata[7]?outdata[7]);
????????????indata?+=?8;
????????????outdata?+=?8;
????????????if?(--i?==?0)
????????????????break;
????????}
????}
????i?=?len?&?0x07;
????if?(i)?{
????????for?(;;)?{
????????????LOOP(indata[0]?outdata[0]);
????????????if?(--i?==?0)
????????????????break;
????????????LOOP(indata[1]?outdata[1]);
????????????if?(--i?==?0)
????????????????break;
????????????LOOP(indata[2]?outdata[2]);
????????????if?(--i?==?0)
????????????????break;
????????????LOOP(indata[3]?outdata[3]);
????????????if?(--i?==?0)
????????????????break;
????????????LOOP(indata[4]?outdata[4]);
????????????if?(--i?==?0)
????????????????break;
????????????LOOP(indata[5]?outdata[5]);
????????????if?(--i?==?0)
????????????????break;
????????????LOOP(indata[6]?outdata[6]);
????????????if?(--i?==?0)
????????????????break;
????????}
????}
????key->x?=?x;
????key->y?=?y;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????12509??2016-09-22?18:14??rc4\asm\rc4-586.pl
?????文件???????4276??2016-09-22?18:14??rc4\asm\rc4-c64xplus.pl
?????文件??????22633??2016-09-22?18:14??rc4\asm\rc4-ia64.pl
?????文件??????16497??2016-09-22?18:14??rc4\asm\rc4-md5-x86_64.pl
?????文件???????7029??2016-09-22?18:14??rc4\asm\rc4-parisc.pl
?????文件???????4658??2016-09-22?18:14??rc4\asm\rc4-s390x.pl
?????文件??????16136??2016-09-22?18:14??rc4\asm\rc4-x86_64.pl
?????文件???????1218??2016-09-22?18:14??rc4\build.info
?????文件???????7363??2017-04-25?21:04??rc4\rc4-586.asm
?????文件???????2326??2017-04-25?21:04??rc4\rc4-586.obj
?????文件???????2301??2016-09-22?18:14??rc4\rc4_enc.c
?????文件????????462??2016-09-22?18:14??rc4\rc4_locl.h
?????文件???????1450??2016-09-22?18:14??rc4\rc4_skey.c
?????目錄??????????0??2017-04-12?19:20??rc4\asm
?????目錄??????????0??2017-04-25?21:04??rc4
-----------?---------??----------?-----??----
????????????????98858????????????????????15
評(píng)論
共有 條評(píng)論