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

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

資源簡介

C++寫的SHA-1算法實現源代碼,供借鑒學習使用~~~

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
using?namespace?std;

unsigned?circleShift(const?unsigned&?wordconst?int&?bits){
return?(word<>(32-bits));
}

unsigned?sha1Fun(const?unsigned&?Bconst?unsigned&?Cconst?unsigned&?Dconst?unsigned&?t){

switch?(t/20){
case?0:?????return?(B?&?C)?|?((~B)?&?D);
case?2:?????return?(B?&?C)?|?(B?&?D)?|?(C?&?D);
case?1:
case?3:?????return?B?^?C?^?D;
}

return?t;
}

string?sha1(const?string&?strRaw){

string?str(strRaw);

str+=(unsigned?char)(0x80);

//?每個字節8位所以要乘8左移3位
while?(str.size()<<3?%?512?!=?448){
str+=(char)0;
}

//?寫入原始數據長度
for?(int?i(56);i>=0;i-=8){
str+=(unsigned?char)((((unsigned?__int64)strRaw.size())<<3)?>>?i);
}

const?unsigned?K[4]={0x5a8279990x6ed9eba10x8f1bbcdc0xca62c1d6};
unsigned?A(0x67452301)B(0xefcdab89)C(0x98badcfe)D(0x10325476)E(0xc3d2e1f0)T(0);
unsigned?W[80]={0};

//?每次處理64字節共512位
for?(unsigned?i(0);i!=str.size();i+=64){
//?前16個字為原始數據
for?(unsigned?t(0);t!=16;++t){
//?將4個8位數據放入一個32位變量中
W[t]=((unsigned)str[i+4*t]?&?0xff)<<24?|
((unsigned)str[i+4*t+1]?&?0xff)<<16?|
((unsigned)str[i+4*t+2]?&?0xff)<<8?|
((unsigned)str[i+4*t+3]?&?0xff);
}

//?填充
for?(unsigned?t(16);t!=80;++t){
W[t]=circleShift(W[t-3]?^?W[t-8]?^?W[t-14]?^?W[t-16]1);
}

for?(unsigned?t(0);t!=80;++t){
T=circleShift(A5)?+?sha1Fun(BCDt)?+?E?+?W[t]?+?K[t/20];
E=D;?
D=C;?
C=circleShift(B30);?
B=A;?
A=T;
}

A+=0x67452301;
B+=0xefcdab89;
C+=0x98badcfe;
D+=0x10325476;
E+=0xc3d2e1f0;
}

stringstream?ss;
ss< ss>>str;

return?str;
}

int?main(int?argcchar?*argv[]){

string?str(““);

cout<<“in?put?a?string?:“< getline(cinstr);

cout<<“raw??string:?“< <<“sha1?encode:?“< system(“pause“);
return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2023??2014-09-29?09:20??SHA1.cpp

評論

共有 條評論