SHA1算法伪代码
来源:互联网 发布:淘宝用户数量2016 编辑:程序博客网 时间:2024/06/05 19:36
//本代码中所有运算均以4bytes为单位进行计算,数据块用首地址取4byte长表示void ft( BYTE *B , BYTE *C, BYTE *D, int t ){ if( 0 <= t <= 19 ) return (B AND C) or ((NOT B) AND D); if( 20 <= t <= 39 ) return B XOR C XOR D; if( 40 <= t <= 59 ) return (B AND C) or (B AND D) or (C AND D); if( 60 <= t <= 79 ) return B XOR C XOR D;}void sha1( BYTE *input , int inbytlen , BYTE *output ) //inbylen 位input的byte长度{//para BYTE K[16]; memcpy( K , "\x5A\x82\x79\x99" , 4); //(0 <= t <= 19) memcpy( &K[4] , "\x6E\xD9\xEB\xA1" ,4) ; //(20 <= t <= 39) memcpy( &K[8] , "\x8F\x1B\xBC\xDC" , 4); //(40 <= t <= 59) memcpy( &K[12] , "\xCA\x62\xC1\xD6" , 4); //(60 <= t <= 79).//para end BYTE tempA[4] , tempB[4] , tempC[4] , tempD[4], tempE[5] ; //4byte 为一个block,缓冲区1 BYTE temp2[20]; //缓冲区2 BYTE temp3[320]; //80个block ,缓冲区3 BYTE temp4[4]; //1个block,缓冲区4 memcpy( temp2 , "\x67\x45\x23\x01", 4 ); memcpy( &temp2[4] , "\xEF\xCD\xAB\x89" , 4 ) memcpy( &temp2[8] , "\x98\xBA\xDC\xFE" , 4 ) memcpy( &temp2[12] , "\x10\x32\x54\x76" , 4) memcpy( &temp2[16] , "\xC3\xD2\xE1\xF0" , 4) for( int i = 0 ; i < inbylen /64 ; i ++ ) { memcpy( temp3 , input[i*64] , 64 ); for( int j = 16 ; j < 80 ; j++ ) { memcpy( &temp3[ j * 4 ] , ( temp3[(j-3)*4] XOR temp3[(j-8)* 4 ] XOR temp3[(j-14) * 4] XOR temp3[(j-16) * 4] )<<<1 ); // <<
代码为伪代码
语法未经调试
仅供参考
欢迎指正
阅读全文
0 0
- SHA1算法伪代码
- astar算法伪代码
- 算法(伪代码)
- prim算法 伪代码
- 决策树算法伪代码
- 算法描述---伪代码
- SMO算法伪代码
- 算法描述---伪代码
- 算法描述---伪代码
- SHA1摘要算法原理以及代码实现
- [摘]连接算法伪代码
- alpha - beta算法 伪代码
- 伪代码和算法理解
- 堆排序算法伪代码
- 算法伪代码的写法
- A*算法,伪代码,源码
- SHA1算法
- SHA1算法
- JQuery基础入门
- innerHTML
- junit测试框架
- P2770【USACO 2014 January Gold】难度系数
- gradle差异化打包
- SHA1算法伪代码
- javascript 学习之函数的参数详解
- 了解 Spring Boot AutoConfiguration
- fastjson使用
- ActiveMQ
- xcode中新建c程序
- 牛客网 走格点
- poj 3264 Balanced Lineup(线段树 区间最值)
- 记录idea对agent的关联