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

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

?? sha1.c

?? SHA1加密算法
?? C
字號(hào):
#include <string.h>

#include "sha1.h"

/* comment the following line to don't run the test suite */

#define TEST

#define GET_UINT32(n,b,i)                       \
{                                               \
    (n) = ( (uint32) (b)[(i)    ] << 24 )       \
        | ( (uint32) (b)[(i) + 1] << 16 )       \
        | ( (uint32) (b)[(i) + 2] <<  8 )       \
        | ( (uint32) (b)[(i) + 3]       );      \
}

#define PUT_UINT32(n,b,i)                       \
{                                               \
    (b)[(i)    ] = (uint8) ( (n) >> 24 );       \
    (b)[(i) + 1] = (uint8) ( (n) >> 16 );       \
    (b)[(i) + 2] = (uint8) ( (n) >>  8 );       \
    (b)[(i) + 3] = (uint8) ( (n)       );       \
}

void sha1_starts( sha1_context *ctx )
{
    ctx->total[0] = 0;
    ctx->total[1] = 0;

    ctx->state[0] = 0x67452301;
    ctx->state[1] = 0xEFCDAB89;
    ctx->state[2] = 0x98BADCFE;
    ctx->state[3] = 0x10325476;
    ctx->state[4] = 0xC3D2E1F0;
}

void sha1_process( sha1_context *ctx, uint8 data[64] )
{
    uint32 temp, W[16], A, B, C, D, E;

    GET_UINT32( W[0],  data,  0 );
    GET_UINT32( W[1],  data,  4 );
    GET_UINT32( W[2],  data,  8 );
    GET_UINT32( W[3],  data, 12 );
    GET_UINT32( W[4],  data, 16 );
    GET_UINT32( W[5],  data, 20 );
    GET_UINT32( W[6],  data, 24 );
    GET_UINT32( W[7],  data, 28 );
    GET_UINT32( W[8],  data, 32 );
    GET_UINT32( W[9],  data, 36 );
    GET_UINT32( W[10], data, 40 );
    GET_UINT32( W[11], data, 44 );
    GET_UINT32( W[12], data, 48 );
    GET_UINT32( W[13], data, 52 );
    GET_UINT32( W[14], data, 56 );
    GET_UINT32( W[15], data, 60 );

#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))

#define R(t)                                            \
(                                                       \
    temp = W[(t -  3) & 0x0F] ^ W[(t - 8) & 0x0F] ^     \
           W[(t - 14) & 0x0F] ^ W[ t      & 0x0F],      \
    ( W[t & 0x0F] = S(temp,1) )                         \
)

#define P(a,b,c,d,e,x)                                  \
{                                                       \
    e += S(a,5) + F(b,c,d) + K + x; b = S(b,30);        \
}

    A = ctx->state[0];
    B = ctx->state[1];
    C = ctx->state[2];
    D = ctx->state[3];
    E = ctx->state[4];

#define F(x,y,z) (z ^ (x & (y ^ z)))
#define K 0x5A827999

    P( A, B, C, D, E, W[0]  );
    P( E, A, B, C, D, W[1]  );
    P( D, E, A, B, C, W[2]  );
    P( C, D, E, A, B, W[3]  );
    P( B, C, D, E, A, W[4]  );
    P( A, B, C, D, E, W[5]  );
    P( E, A, B, C, D, W[6]  );
    P( D, E, A, B, C, W[7]  );
    P( C, D, E, A, B, W[8]  );
    P( B, C, D, E, A, W[9]  );
    P( A, B, C, D, E, W[10] );
    P( E, A, B, C, D, W[11] );
    P( D, E, A, B, C, W[12] );
    P( C, D, E, A, B, W[13] );
    P( B, C, D, E, A, W[14] );
    P( A, B, C, D, E, W[15] );
    P( E, A, B, C, D, R(16) );
    P( D, E, A, B, C, R(17) );
    P( C, D, E, A, B, R(18) );
    P( B, C, D, E, A, R(19) );

#undef K
#undef F

#define F(x,y,z) (x ^ y ^ z)
#define K 0x6ED9EBA1

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

#undef K
#undef F

#define F(x,y,z) ((x & y) | (z & (x | y)))
#define K 0x8F1BBCDC

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

#undef K
#undef F

#define F(x,y,z) (x ^ y ^ z)
#define K 0xCA62C1D6

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

#undef K
#undef F

    ctx->state[0] += A;
    ctx->state[1] += B;
    ctx->state[2] += C;
    ctx->state[3] += D;
    ctx->state[4] += E;
}

void sha1_update( sha1_context *ctx, uint8 *input, uint32 length )
{
    uint32 left, fill;

    if( ! length ) return;

    left = ctx->total[0] & 0x3F;
    fill = 64 - left;

    ctx->total[0] += length;
    ctx->total[0] &= 0xFFFFFFFF;

    if( ctx->total[0] < length )
        ctx->total[1]++;

    if( left && length >= fill )
    {
        memcpy( (void *) (ctx->buffer + left),
                (void *) input, fill );
        sha1_process( ctx, ctx->buffer );
        length -= fill;
        input  += fill;
        left = 0;
    }

    while( length >= 64 )
    {
        sha1_process( ctx, input );
        length -= 64;
        input  += 64;
    }

    if( length )
    {
        memcpy( (void *) (ctx->buffer + left),
                (void *) input, length );
    }
}

static uint8 sha1_padding[64] =
{
 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

void sha1_finish( sha1_context *ctx, uint8 digest[20] )
{
    uint32 last, padn;
    uint32 high, low;
    uint8 msglen[8];

    high = ( ctx->total[0] >> 29 )
         | ( ctx->total[1] <<  3 );
    low  = ( ctx->total[0] <<  3 );

    PUT_UINT32( high, msglen, 0 );
    PUT_UINT32( low,  msglen, 4 );

    last = ctx->total[0] & 0x3F;
    padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last );

    sha1_update( ctx, sha1_padding, padn );
    sha1_update( ctx, msglen, 8 );

    PUT_UINT32( ctx->state[0], digest,  0 );
    PUT_UINT32( ctx->state[1], digest,  4 );
    PUT_UINT32( ctx->state[2], digest,  8 );
    PUT_UINT32( ctx->state[3], digest, 12 );
    PUT_UINT32( ctx->state[4], digest, 16 );
}

#ifdef TEST

#include <stdlib.h>
#include <stdio.h>

/*
 * those are the standard FIPS-180-1 test vectors
 */

static char *msg[] = 
{
    "abc",
    "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
    NULL
};

static char *val[] =
{
    "a9993e364706816aba3e25717850c26c9cd0d89d",
    "84983e441c3bd26ebaae4aa1f95129e5e54670f1",
    "34aa973cd4c4daa4f61eeb2bdbad27316534016f"
};

int main( int argc, char *argv[] )
{
    FILE *f;
    int i, j;
    char output[41];
    sha1_context ctx;
    unsigned char buf[1000];
    unsigned char sha1sum[20];

    if( argc < 2 )
    {
        printf( "\n SHA-1 Validation Tests:\n\n" );

        for( i = 0; i < 3; i++ )
        {
            printf( " Test %d\n", i + 1 );

            sha1_starts( &ctx );
            
            if( i == 0)
            {
            printf( " abc\n" );
            }
            
            if( i == 1)
            {
            printf( " abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\n" );
            }
            if( i == 2)
            {
            printf( " 1 million a read from 1Ma.txt\n" );
            }

            if( i < 2 )
            {
                sha1_update( &ctx, (uint8 *) msg[i],
                             strlen( msg[i] ) );
            }
            else
            {
                memset( buf, 'a', 1000 );

                for( j = 0; j < 1000; j++ )
                {
                    sha1_update( &ctx, (uint8 *) buf, 1000 );
                }
            }

            sha1_finish( &ctx, sha1sum );

            for( j = 0; j < 20; j++ )
            {
                sprintf( output + j * 2, "%02x", sha1sum[j] );
            }
            
            printf( " " );
            
            for( j = 0; j < 20; j++ )
 	       {
            printf( "%02x", sha1sum[j] );
    	    }
            
            printf( "\n" );

            if( memcmp( output, val[i], 40 ) )
            {
                printf( "failed!\n" );
                return( 1 );
            }

            printf( " passed.\n\n" );
        }

        printf( "\n" );
    }
    else
    {
        if( ! ( f = fopen( argv[1], "rb" ) ) )
        {
            perror( "fopen" );
            return( 1 );
        }

        sha1_starts( &ctx );

        while( ( i = fread( buf, 1, sizeof( buf ), f ) ) > 0 )
        {
            sha1_update( &ctx, buf, i );
        }

        sha1_finish( &ctx, sha1sum );

        for( j = 0; j < 20; j++ )
        {
            printf( "%02x", sha1sum[j] );
        }

        printf( "  %s\n", argv[1] );
    }

    return( 0 );
}

#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产精品大片| 国产在线精品不卡| 国产成人精品免费看| 亚洲欧美二区三区| 2023国产精华国产精品| 91久久国产最好的精华液| 国产精品一区二区视频| 午夜激情一区二区三区| 亚洲天天做日日做天天谢日日欢| 欧美一级欧美三级| 91福利在线免费观看| 国产东北露脸精品视频| 蜜桃视频免费观看一区| 亚洲蜜桃精久久久久久久| 久久精品人人做人人综合 | 色屁屁一区二区| 国产精品69毛片高清亚洲| 免费成人美女在线观看| 亚洲另类中文字| 国产精品久久久久久久久免费相片 | 91色porny在线视频| 人禽交欧美网站| 亚洲尤物视频在线| 91精品婷婷国产综合久久竹菊| 色香蕉成人二区免费| 一色屋精品亚洲香蕉网站| 日韩欧美在线网站| 91麻豆精品国产自产在线观看一区| a级高清视频欧美日韩| 成人一二三区视频| 国产一区二区免费视频| 国产最新精品免费| 青青青伊人色综合久久| 亚洲va韩国va欧美va| 伊人开心综合网| 亚洲图片激情小说| 亚洲欧洲www| 国产精品久久毛片av大全日韩| 欧美精品一区二区三区久久久 | 26uuuu精品一区二区| 欧美一区二区三区小说| 欧美一区二区三区色| 欧美日产在线观看| 制服丝袜国产精品| 欧美一区二区视频免费观看| 91精品国产综合久久小美女| 欧美一区二区三区视频| 精品三级在线观看| 久久久精品国产免费观看同学| 精品电影一区二区| 日本一区二区久久| 男女男精品视频| 蜜臀精品一区二区三区在线观看 | 日本国产一区二区| 91亚洲精品久久久蜜桃| 日本精品一区二区三区四区的功能| 97se亚洲国产综合自在线| 色一情一乱一乱一91av| 欧美日韩国产综合草草| 欧美二区乱c少妇| 宅男噜噜噜66一区二区66| 欧美成人在线直播| 久久精品视频网| 亚洲日本在线天堂| 日韩黄色一级片| 国产麻豆精品95视频| 99久久亚洲一区二区三区青草| 在线观看日韩av先锋影音电影院| 欧美浪妇xxxx高跟鞋交| 久久久综合视频| 亚洲人成精品久久久久久| 亚洲成人黄色小说| 国产一区二区三区免费看| 不卡区在线中文字幕| 欧美日韩亚州综合| 精品福利一二区| 亚洲欧美成人一区二区三区| 亚洲高清免费观看| 国产伦精品一区二区三区免费| 99热这里都是精品| 6080日韩午夜伦伦午夜伦| 久久精品夜色噜噜亚洲aⅴ| 亚洲乱码日产精品bd| 美女在线观看视频一区二区| 成人福利电影精品一区二区在线观看| 欧美日韩精品一区视频| 欧美激情一区二区三区不卡| 香蕉乱码成人久久天堂爱免费| 国产综合一区二区| 欧美三级视频在线观看| 国产无人区一区二区三区| 亚洲.国产.中文慕字在线| 成人的网站免费观看| 欧美一区二区三区在线看| 国产精品电影一区二区三区| 奇米777欧美一区二区| 91在线一区二区| 国产午夜亚洲精品不卡| 视频一区视频二区中文| 色先锋aa成人| 日本一区二区动态图| 美国一区二区三区在线播放| 91浏览器打开| www国产成人免费观看视频 深夜成人网| 亚洲欧美国产高清| 福利电影一区二区三区| 精品日韩一区二区| 亚洲成人一区二区在线观看| 不卡的电视剧免费网站有什么| 日韩午夜av电影| 一二三四社区欧美黄| 国产电影一区二区三区| 日韩欧美一二三区| 亚洲一区精品在线| 97se亚洲国产综合自在线不卡| 国产色91在线| 狠狠色丁香久久婷婷综合丁香| 在线成人av网站| 亚洲最大成人网4388xx| 91丨九色丨尤物| 国产精品久久影院| 成人动漫在线一区| 欧美韩国一区二区| 丁香啪啪综合成人亚洲小说 | 久久精品国产精品亚洲红杏| 日本高清不卡一区| 亚洲婷婷在线视频| 99久久99久久精品免费观看| 国产欧美日韩精品a在线观看| 蜜臀久久99精品久久久久宅男| 欧美精品在线视频| 日韩黄色在线观看| 91精品国产综合久久小美女| 日韩成人一级大片| 在线不卡一区二区| 免费观看久久久4p| 日韩一区二区三区精品视频| 奇米影视一区二区三区| 日韩一卡二卡三卡国产欧美| 蜜臀av亚洲一区中文字幕| 欧美一级高清片| 韩国一区二区三区| 国产日韩欧美在线一区| 成人精品一区二区三区中文字幕| 中文字幕制服丝袜成人av| 成人精品小蝌蚪| 亚洲色图一区二区| 色就色 综合激情| 午夜亚洲福利老司机| 欧美伦理电影网| 老司机精品视频线观看86 | 久久久久久久综合狠狠综合| 国产在线播放一区三区四| 日本一区二区三区在线观看| 成人午夜大片免费观看| 亚洲美女偷拍久久| 欧美日本一区二区在线观看| 日本不卡视频一二三区| 久久久美女艺术照精彩视频福利播放| 国产99久久久国产精品| 亚洲摸摸操操av| 欧美一级高清片| 成人午夜电影小说| 亚洲a一区二区| 亚洲一区精品在线| 日韩欧美一级在线播放| 国产aⅴ综合色| 亚洲午夜免费视频| 精品欧美乱码久久久久久1区2区| 国产91高潮流白浆在线麻豆| 亚洲精品写真福利| 日韩午夜激情电影| 成人av午夜影院| 亚洲成人av电影在线| 久久午夜羞羞影院免费观看| 9人人澡人人爽人人精品| 日韩成人一级片| 中文字幕一区二区三区视频| 欧美日韩国产a| 国产精品一区二区91| 亚洲制服丝袜av| 久久久五月婷婷| 欧美日韩免费视频| 国产成人免费高清| 亚洲h动漫在线| 欧美韩日一区二区三区| 91精品在线免费观看| www.综合网.com| 蜜臀av一区二区在线观看| 一区二区三区中文字幕精品精品| 精品国产欧美一区二区| 色www精品视频在线观看| 国内成人免费视频| 亚洲午夜精品一区二区三区他趣| 久久久久久亚洲综合影院红桃| 欧美日韩国产首页| eeuss鲁片一区二区三区在线观看| 日韩成人精品在线| 伊人婷婷欧美激情| 中国av一区二区三区|