亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sha.cpp

?? 300種加密解密算法.包含RSA、SHA、MD5、RC2、RC5、RC6等等。
?? CPP
字號(hào):
// sha.cpp - modified by Wei Dai from Peter Gutmann's code
// Copyright 1992 by Peter Gutmann <pgut01@cs.auckland.ac.nz>.  Distributed with permission.

#include "pch.h"
#include "sha.h"

NAMESPACE_BEGIN(CryptoPP)

SHA::SHA()
	: IteratedHash<word32>(DATASIZE, DIGESTSIZE)
{
	Init();
}

void SHA::Init()
{
	countLo = countHi = 0;

	digest[0] = 0x67452301L;
	digest[1] = 0xEFCDAB89L;
	digest[2] = 0x98BADCFEL;
	digest[3] = 0x10325476L;
	digest[4] = 0xC3D2E1F0L;
}

void SHA::HashBlock(const word32 *input)
{
#ifndef IS_LITTLE_ENDIAN
	Transform(digest, input);
#else
	byteReverse(data.ptr, input, (unsigned int)DATASIZE);
	Transform(digest, data);
#endif
}

void SHA::Final(byte *hash)
{
	PadLastBlock(56);
	CorrectEndianess(data, data, 56);

	data[14] = countHi;
	data[15] = countLo;

	Transform(digest, data);
	CorrectEndianess(digest, digest, DIGESTSIZE);
	memcpy(hash, digest, DIGESTSIZE);

	Init();		// reinit for next use
}


/* The SHA f()-functions.  The f1 and f3 functions can be optimized to
   save one bool operation each - thanks to Rich Schroeppel,
   rcs@cs.arizona.edu for discovering this */

/*#define f1(x,y,z) ( ( x & y ) | ( ~x & z ) )          // Rounds  0-19 */
#define f1(x,y,z)   ( z ^ ( x & ( y ^ z ) ) )           /* Rounds  0-19 */
#define f2(x,y,z)   ( x ^ y ^ z )                       /* Rounds 20-39 */
/*#define f3(x,y,z) ( ( x & y ) | ( x & z ) | ( y & z ) )   // Rounds 40-59 */
#define f3(x,y,z)   ( ( x & y ) | ( z & ( x | y ) ) )   /* Rounds 40-59 */
#define f4(x,y,z)   ( x ^ y ^ z )                       /* Rounds 60-79 */

/* The SHA Mysterious Constants */

#define K1  0x5A827999L                                 /* Rounds  0-19 */
#define K2  0x6ED9EBA1L                                 /* Rounds 20-39 */
#define K3  0x8F1BBCDCL                                 /* Rounds 40-59 */
#define K4  0xCA62C1D6L                                 /* Rounds 60-79 */

/* Note that it may be necessary to add parentheses to these macros if they
   are to be called with expressions as arguments */

/* The initial expanding function.  The hash function is defined over an
   80-word expanded input array W, where the first 16 are copies of the input
   data, and the remaining 64 are defined by

		W[ i ] = W[ i - 16 ] ^ W[ i - 14 ] ^ W[ i - 8 ] ^ W[ i - 3 ]

   This implementation generates these values on the fly in a circular
   buffer - thanks to Colin Plumb, colin@nyx10.cs.du.edu for this
   optimization.

   The updated SHA-1 changes the expanding function by adding a rotate of 1
   bit. */

  #define expand(W,i) ( W[ i & 15 ] = rotl( (W[i&15] ^ W[i-14&15] ^ \
											 W[i-8&15] ^ W[i-3&15]), 1U) )

/* The prototype SHA sub-round.  The fundamental sub-round is:

		a' = e + ROTL( 5, a ) + f( b, c, d ) + k + data;
		b' = a;
		c' = ROTL( 30, b );
		d' = c;
		e' = d;

   but this is implemented by unrolling the loop 5 times and renaming the
   variables ( e, a, b, c, d ) = ( a', b', c', d', e' ) each iteration.
   This code is then replicated 20 times for each of the 4 functions, using
   the next 20 values from the W[] array each time */

#define subRound(a, b, c, d, e, f, k, data) \
	( e += rotl(a,5U) + f(b,c,d) + k + data, b = rotl(b,30U))

/* Perform the SHA transformation.  Note that this code, like MD5, seems to
   break some optimizing compilers due to the complexity of the expressions
   and the size of the basic block.  It may be necessary to split it into
   sections, e.g. based on the four subrounds */

void SHA::Transform( word32 *digest, const word32 *data )
{
	word32 eData[16];
	memcpy( eData, data, DATASIZE );

	register word32 A, B, C, D, E;
	A = digest[0];
	B = digest[1];
	C = digest[2];
	D = digest[3];
	E = digest[4];

	// Heavy mangling, in 4 sub-rounds of 20 interations each.
	subRound( A, B, C, D, E, f1, K1, eData[  0 ] );
	subRound( E, A, B, C, D, f1, K1, eData[  1 ] );
	subRound( D, E, A, B, C, f1, K1, eData[  2 ] );
	subRound( C, D, E, A, B, f1, K1, eData[  3 ] );
	subRound( B, C, D, E, A, f1, K1, eData[  4 ] );
	subRound( A, B, C, D, E, f1, K1, eData[  5 ] );
	subRound( E, A, B, C, D, f1, K1, eData[  6 ] );
	subRound( D, E, A, B, C, f1, K1, eData[  7 ] );
	subRound( C, D, E, A, B, f1, K1, eData[  8 ] );
	subRound( B, C, D, E, A, f1, K1, eData[  9 ] );
	subRound( A, B, C, D, E, f1, K1, eData[ 10 ] );
	subRound( E, A, B, C, D, f1, K1, eData[ 11 ] );
	subRound( D, E, A, B, C, f1, K1, eData[ 12 ] );
	subRound( C, D, E, A, B, f1, K1, eData[ 13 ] );
	subRound( B, C, D, E, A, f1, K1, eData[ 14 ] );
	subRound( A, B, C, D, E, f1, K1, eData[ 15 ] );
	subRound( E, A, B, C, D, f1, K1, expand( eData, 16 ) );
	subRound( D, E, A, B, C, f1, K1, expand( eData, 17 ) );
	subRound( C, D, E, A, B, f1, K1, expand( eData, 18 ) );
	subRound( B, C, D, E, A, f1, K1, expand( eData, 19 ) );

	subRound( A, B, C, D, E, f2, K2, expand( eData, 20 ) );
	subRound( E, A, B, C, D, f2, K2, expand( eData, 21 ) );
	subRound( D, E, A, B, C, f2, K2, expand( eData, 22 ) );
	subRound( C, D, E, A, B, f2, K2, expand( eData, 23 ) );
	subRound( B, C, D, E, A, f2, K2, expand( eData, 24 ) );
	subRound( A, B, C, D, E, f2, K2, expand( eData, 25 ) );
	subRound( E, A, B, C, D, f2, K2, expand( eData, 26 ) );
	subRound( D, E, A, B, C, f2, K2, expand( eData, 27 ) );
	subRound( C, D, E, A, B, f2, K2, expand( eData, 28 ) );
	subRound( B, C, D, E, A, f2, K2, expand( eData, 29 ) );
	subRound( A, B, C, D, E, f2, K2, expand( eData, 30 ) );
	subRound( E, A, B, C, D, f2, K2, expand( eData, 31 ) );
	subRound( D, E, A, B, C, f2, K2, expand( eData, 32 ) );
	subRound( C, D, E, A, B, f2, K2, expand( eData, 33 ) );
	subRound( B, C, D, E, A, f2, K2, expand( eData, 34 ) );
	subRound( A, B, C, D, E, f2, K2, expand( eData, 35 ) );
	subRound( E, A, B, C, D, f2, K2, expand( eData, 36 ) );
	subRound( D, E, A, B, C, f2, K2, expand( eData, 37 ) );
	subRound( C, D, E, A, B, f2, K2, expand( eData, 38 ) );
	subRound( B, C, D, E, A, f2, K2, expand( eData, 39 ) );

	subRound( A, B, C, D, E, f3, K3, expand( eData, 40 ) );
	subRound( E, A, B, C, D, f3, K3, expand( eData, 41 ) );
	subRound( D, E, A, B, C, f3, K3, expand( eData, 42 ) );
	subRound( C, D, E, A, B, f3, K3, expand( eData, 43 ) );
	subRound( B, C, D, E, A, f3, K3, expand( eData, 44 ) );
	subRound( A, B, C, D, E, f3, K3, expand( eData, 45 ) );
	subRound( E, A, B, C, D, f3, K3, expand( eData, 46 ) );
	subRound( D, E, A, B, C, f3, K3, expand( eData, 47 ) );
	subRound( C, D, E, A, B, f3, K3, expand( eData, 48 ) );
	subRound( B, C, D, E, A, f3, K3, expand( eData, 49 ) );
	subRound( A, B, C, D, E, f3, K3, expand( eData, 50 ) );
	subRound( E, A, B, C, D, f3, K3, expand( eData, 51 ) );
	subRound( D, E, A, B, C, f3, K3, expand( eData, 52 ) );
	subRound( C, D, E, A, B, f3, K3, expand( eData, 53 ) );
	subRound( B, C, D, E, A, f3, K3, expand( eData, 54 ) );
	subRound( A, B, C, D, E, f3, K3, expand( eData, 55 ) );
	subRound( E, A, B, C, D, f3, K3, expand( eData, 56 ) );
	subRound( D, E, A, B, C, f3, K3, expand( eData, 57 ) );
	subRound( C, D, E, A, B, f3, K3, expand( eData, 58 ) );
	subRound( B, C, D, E, A, f3, K3, expand( eData, 59 ) );

	subRound( A, B, C, D, E, f4, K4, expand( eData, 60 ) );
	subRound( E, A, B, C, D, f4, K4, expand( eData, 61 ) );
	subRound( D, E, A, B, C, f4, K4, expand( eData, 62 ) );
	subRound( C, D, E, A, B, f4, K4, expand( eData, 63 ) );
	subRound( B, C, D, E, A, f4, K4, expand( eData, 64 ) );
	subRound( A, B, C, D, E, f4, K4, expand( eData, 65 ) );
	subRound( E, A, B, C, D, f4, K4, expand( eData, 66 ) );
	subRound( D, E, A, B, C, f4, K4, expand( eData, 67 ) );
	subRound( C, D, E, A, B, f4, K4, expand( eData, 68 ) );
	subRound( B, C, D, E, A, f4, K4, expand( eData, 69 ) );
	subRound( A, B, C, D, E, f4, K4, expand( eData, 70 ) );
	subRound( E, A, B, C, D, f4, K4, expand( eData, 71 ) );
	subRound( D, E, A, B, C, f4, K4, expand( eData, 72 ) );
	subRound( C, D, E, A, B, f4, K4, expand( eData, 73 ) );
	subRound( B, C, D, E, A, f4, K4, expand( eData, 74 ) );
	subRound( A, B, C, D, E, f4, K4, expand( eData, 75 ) );
	subRound( E, A, B, C, D, f4, K4, expand( eData, 76 ) );
	subRound( D, E, A, B, C, f4, K4, expand( eData, 77 ) );
	subRound( C, D, E, A, B, f4, K4, expand( eData, 78 ) );
	subRound( B, C, D, E, A, f4, K4, expand( eData, 79 ) );

	digest[0] += A;
	digest[1] += B;
	digest[2] += C;
	digest[3] += D;
	digest[4] += E;

	memset(eData, 0, DATASIZE);
}

NAMESPACE_END

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区和二区| 国产精品久久久久影院色老大| 久久91精品久久久久久秒播| 国产精品高潮呻吟| 日韩亚洲欧美一区二区三区| 成人少妇影院yyyy| 另类的小说在线视频另类成人小视频在线 | 欧美日韩一级二级| 高清beeg欧美| 蜜桃av一区二区| 亚洲福利视频一区二区| 国产精品福利在线播放| 日韩美女在线视频| 欧美年轻男男videosbes| 972aa.com艺术欧美| 国产精品中文有码| 久久国产成人午夜av影院| 亚洲一区二区三区小说| 欧美精品在线观看一区二区| 色综合久久久久综合体 | 欧美日韩电影在线| 不卡的av在线播放| 国产麻豆成人精品| 精品午夜一区二区三区在线观看| 亚洲最色的网站| 亚洲日本一区二区| 一区二区中文字幕在线| 国产精品丝袜久久久久久app| 精品88久久久久88久久久| 日韩精品中文字幕一区 | 一区二区三区精密机械公司| 国产日产欧美一区| 久久久久久久综合色一本| 久久久久久久综合色一本| 久久这里只有精品视频网| 久久久蜜桃精品| 精品国产免费一区二区三区香蕉| 日韩欧美国产一区二区在线播放| 在线不卡a资源高清| 911精品国产一区二区在线| 欧美日韩美女一区二区| 欧美综合天天夜夜久久| 在线精品视频免费观看| 国产日韩精品一区二区三区在线| 精品国产亚洲在线| 久久精品一区二区| 久久久久国产精品厨房| 欧美国产日韩精品免费观看| 国产精品天天看| 亚洲精品中文在线| 亚洲一区av在线| 日韩av不卡一区二区| 激情深爱一区二区| 成人黄页在线观看| 色婷婷av一区二区三区软件| 欧美私人免费视频| 日韩欧美一二三| 国产日韩欧美综合在线| 亚洲女女做受ⅹxx高潮| 亚洲一二三四在线| 另类小说一区二区三区| 国产精品99久久不卡二区| 99久久精品免费看国产免费软件| 欧美亚洲国产bt| 日韩亚洲欧美在线观看| 亚洲国产精品v| 性欧美疯狂xxxxbbbb| 久久91精品国产91久久小草| 国产99一区视频免费| 欧美视频自拍偷拍| 欧美变态tickling挠脚心| 国产精品毛片久久久久久久| 一区二区三区色| 奇米精品一区二区三区在线观看一| 国产露脸91国语对白| 日本韩国欧美国产| 精品成人a区在线观看| 亚洲精品免费电影| 久久超碰97中文字幕| 91一区二区在线观看| 日韩午夜三级在线| 亚洲欧美日韩国产一区二区三区| 午夜婷婷国产麻豆精品| 国产很黄免费观看久久| 亚洲国产成人自拍| 亚洲一区二区av在线| 国产激情视频一区二区三区欧美| 欧美视频中文一区二区三区在线观看| 久久女同性恋中文字幕| 一区二区三区91| 国产高清一区日本| 欧美美女直播网站| 亚洲桃色在线一区| 国产伦精品一区二区三区免费迷| 在线视频中文字幕一区二区| 久久久精品欧美丰满| 婷婷丁香激情综合| 99国产欧美另类久久久精品 | 国产日韩欧美精品在线| 日韩和的一区二区| 99国产精品一区| 国产亚洲精品精华液| 视频在线在亚洲| 91同城在线观看| 国产日韩欧美不卡| 久久精品国产一区二区三| 欧美亚洲一区三区| 亚洲欧美一区二区三区久本道91| 韩国三级电影一区二区| 5858s免费视频成人| 一区二区久久久久久| 成人性视频免费网站| 久久久电影一区二区三区| 日本美女一区二区三区视频| 色综合久久天天综合网| 国产精品久久99| 福利一区在线观看| 久久久影视传媒| 国内一区二区在线| 日韩美女在线视频| 精品一区二区三区蜜桃| 日韩一区二区三| 七七婷婷婷婷精品国产| 欧美久久久影院| 午夜成人在线视频| 欧美精品九九99久久| 亚洲 欧美综合在线网络| 欧美色欧美亚洲另类二区| 亚洲一区二区三区四区在线| 91黄色免费版| 一区二区激情小说| 在线观看免费视频综合| 亚洲一线二线三线视频| 在线视频欧美区| 亚洲福中文字幕伊人影院| 欧美性欧美巨大黑白大战| 亚洲成人免费观看| 欧美精品第1页| 蜜芽一区二区三区| 精品99一区二区三区| 国产中文字幕精品| 欧美高清在线精品一区| 成人综合在线观看| 亚洲女同一区二区| 欧美另类高清zo欧美| 视频一区二区国产| 精品久久99ma| 成人精品视频一区二区三区| 亚洲日本中文字幕区| 精品视频免费看| 久久国产尿小便嘘嘘| 国产欧美一区二区精品婷婷| 成人动漫视频在线| 亚洲图片有声小说| 欧美岛国在线观看| 高清在线观看日韩| 一区二区三区在线看| 欧美日韩精品高清| 国产一区视频导航| 中文字幕日韩精品一区| 欧美日本不卡视频| 国产精品99久久久久久似苏梦涵 | 麻豆91免费观看| 国产欧美va欧美不卡在线| 色综合天天综合网天天看片| 亚洲高清免费观看| 久久午夜色播影院免费高清| 99精品视频一区| 日本欧美肥老太交大片| 国产精品色婷婷久久58| 欧美午夜片在线观看| 极品美女销魂一区二区三区免费| 亚洲国产成人午夜在线一区| 在线视频国内自拍亚洲视频| 久久精品国产色蜜蜜麻豆| 国产精品久久久久久久第一福利| 欧美性感一类影片在线播放| 日韩精品乱码免费| 中文字幕第一区二区| 欧美日韩国产综合一区二区三区| 国产剧情一区在线| 亚洲福利电影网| 国产人妖乱国产精品人妖| 欧美日韩综合一区| 成人理论电影网| 麻豆国产精品官网| 一区二区三区在线视频免费| 精品国产青草久久久久福利| 欧洲色大大久久| 国产不卡视频在线观看| 日韩电影免费在线看| 中文字幕一区二区三区在线不卡 | 欧美在线一二三| 国产成人激情av| 美女脱光内衣内裤视频久久影院| 最新日韩av在线| 久久你懂得1024| 欧美精品日韩一区| 日本韩国欧美一区| 99久久综合精品|