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

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

資源簡介

給出了SHA算法的一種C語言版的實現。經與Openssl對照測試,通過本方法計算的摘要是正確的。

資源截圖

代碼片段和文件信息

//?SHA11.cpp:?implementation?of?the?CSHA1?class.
//
//////////////////////////////////////////////////////////////////////

#include?“stdafx.h“
#include?“Z32KMSK.h“
#include?“SHA1.h“

#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSHA1::CSHA1()
{

}

CSHA1::~CSHA1()
{

}

int?CSHA1::SHA1(unsigned?char*?data?int?dataLen?unsigned?char*?md)
{
unsigned?char*?pbytes?=?(unsigned?char*)data;
unsigned?int?nbyte?=?dataLen;

static?unsigned?int?words[80];
unsigned?int?H[5]?=?{0x67452301?0xEFCDAB89?0x98BADCFE?0x10325476?0xC3D2E1F0};
unsigned?int?a?b?c?d?e?f?k?temp?bitlen[2]?word;
unsigned?int?i?j?index?p1?p2?maxlen;
unsigned?char?spec[4]?=?{0};
i?=?nbyte?%?4;
//處理尾項
p1?=?nbyte?-?i;
spec[i]?=?1?< while?(i--)
{
spec[i]?=?pbytes[p1?+?i];
}

maxlen?=?(nbyte?+?1)?%?64;
if(maxlen?<=?56)
{
maxlen?=?(nbyte?+?1)?-?maxlen?+?64;
}
else
{
maxlen?=?(nbyte?+?1)?-?maxlen?+?128;
}
p2=?maxlen?-?8;
? WriteBigEndian64((unsigned?char*)bitlen?nbyte?*?8);

for(j?=?0;?j? {
a?=?H[0];
b?=?H[1];
c?=?H[2];
d?=?H[3];
e?=?H[4];
for(i?=?0;?i? {
if(i? {
index?=?j?+?(i?< if(index? {
word?=?*((unsigned?int*)(pbytes?+?index));
}
else?if(index?==?p1)
{
word?=?*(unsigned?int*)spec;
}
else?if(index? {
word?=?0;
}
else?
{
word?=?(index? }
words[i]?=?FromBigEndian(word);
}
else?
{
words[i]?=?LeftRol(words[i?-?3]?^?words[i?-?8]?^?words[i?-?14]?^?words[i?-?16]?1);
}
if(i? {
f?=?(b?&?c)?|?((~b)?&?d);
k?=?0x5A827999;
}
else?if?(i? {
f=b?^?c?^?d;
k?=?0x6ED9EBA1;
}
else?if?(i? {
f?=?(b?&?c)?|?(b?&?d)?|?(c?&?d);
k?=?0x8F1BBCDC;
}
else?
{
f?=?b?^?c?^?d;
k?=?0xCA62C1D6;
}
temp?=?LeftRol(a?5)?+?f?+?e?+?k?+?words[i];
e?=?d;
d?=?c;
c?=?LeftRol(b?30);
b?=?a;
a?=?temp;
}
H[0]?+=?a;
H[1]?+=?b;
H[2]?+=?c;
H[3]?+=?d;
H[4]?+=?e;

}
int?ct?=?0;
for?(i?=?0;?i? {
unsigned?char?buf[4]?=?{0};
memcpy(buf?&(H[i])?4);
for?(int?r?=?3;?r?>=?0;?r--)
{
md[ct]?=?buf[r];
ct++;
}
}

return?0;
}

unsigned?int?CSHA1::FromBigEndian(unsigned?int?v)
{
return?((v?&?0xff)?<>?8)?|
((v?&?0xff000000)?>>?24);
}

void?CSHA1::WriteBigEndian64(unsigned?char?*p?unsigned?int?v)
{
unsigned?char?t;
memset(p?0?8);
memcpy(p?&v?4);
int?i=0;
for(i?=?0;?i? {
t?=?p[i];
p[i]?=?p[7?-?i];
p[7?-?i]?=?t;
}
}

u

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3098??2010-03-10?17:10??sha1.cpp

?????文件????????698??2010-03-10?17:10??sha1.h

-----------?---------??----------?-----??----

?????????????????3796????????????????????2


評論

共有 條評論