91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-23
  • 語言: C/C++
  • 標簽: RC4??

資源簡介

自己根據密碼課本上寫的,供大家參考,要是哪里寫得不對的話麻煩大家指正,O(∩_∩)O謝謝

資源截圖

代碼片段和文件信息

#include
#include
#include
using?namespace?std;
unsigned?char?k[8]temptable[30000]plaintable[30000]nowtable[30000]sonkey[30000]?;?int??plainlengthklength;
int?ktable[256]stable[256];
class?rc4
{
??public:
??static?unsigned?char?xor(unsigned?char?aunsigned?char?b);????//加解密的時候進行異或運算,注意要轉換成unsigned?char類型,否則異或會出現大于255的現象
??static?void?swap(?int?*a?int?*b);???//兩個數進行交換操作
??static?void?KSA();??????//密鑰調度
??static?void?PRGA();?????//偽隨機生成
??void?cryption();?????????//加密
??void?decryption();??????//解密
??void?dtoh(unsigned?char?a);???//轉換成16進制輸出
??rc4()?{};???//構造函數

};

unsigned?char?rc4::xor(unsigned?char?aunsigned?char?b)
{
return?a^b;
}


void?rc4::swap(?int?*a?int?*b)
{
????int?temp;
temp=*a;
*a=*b;
*b=temp;
}

void?rc4::KSA()
{
int?ij=0;
for(i=0;i<256;i++)
{
j=(j+stable[i]+(?int)ktable[i])%256;
swap(&stable[i]&stable[j]);
}
cout< cout<<“************************“< cout<<“Output?Key“<????for(i=0;i<256;i++)
cout< cout<
}

void?rc4::PRGA()
{
????int?m=0i=0j=0tl;l=plainlength;
while(l--)?????//密鑰長度要和明文長度一致
{
i=(i+1)%256;
j=(j+stable[i])%256;
swap(&stable[i]&stable[j]);
t=(stable[j]+stable[i])%256;
sonkey[m++]=stable[t];???????????????//將子密鑰存放在sonkey數組中
}

}

void?rc4::cryption()
{
KSA();
PRGA();

評論

共有 條評論