/*
* Functions to compute MD5 message digest of files or memory blocks
* according to the definition of MD5 in RFC 1321 from April 1992.
* Copyright (C) 1995, 1996 Free Software Foundation, Inc. NOTE: The
* canonical source of this file is maintained with the GNU C Library.
* Bugs can be reported to bug-glibc@prep.ai.mit.edu.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
* Modified by Gray Watson <http://256.com/gray/>, 1997.
*
* $Id: md5.c,v 1.1.1.1 2004/05/17 13:23:36 rcrittenden0569 Exp $
*/
/*
* NOTE: during quick performance tests on a Sun Sparc Ultra 1 and an
* Alpha 255 300, these functions performed upwards of 3mb/sec
* including disk I/O time.
*/
/*
* MD5 Test Suite from RFC1321: http://ds.internic.net:/rfc/rfc1321.txt
*
* MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
* MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
* MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
* MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
* MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
* MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =
* d174ab98d277d9f5a5611c2c9f419d9f
* MD5 ("123456789012345678901234567890123456789012345678901234567890123456
* 78901234567890") = 57edf4a22be3c955ac49da2e2107b67a
*/
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "md5.h"
#include "md5_loc.h"
#if 0
static char *rcs_id =
"$Id: md5.c,v 1.1.1.1 2004/05/17 13:23:36 rcrittenden0569 Exp $";
/* version id for the library */
static char *version_id = "$MD5Version: 1.0.0 November-19-1997 $";
#endif
/****************************** local routines *******************************/
/*
* process_block
*
* DESCRIPTION:
*
* Process a block of bytes into a MD5 state structure.
*
* RETURNS:
*
* None.
*
* ARGUMENTS:
*
* md5_p - Pointer to MD5 structure from which we are getting the result.
*
* buffer - A buffer of bytes whose MD5 signature we are calculating.
*
* buf_len - The length of the buffer.
*/
static void process_block(md5_t *md5_p, const void *buffer,
const unsigned int buf_len)
{
md5_uint32 correct[16];
const void *buf_p = buffer, *end_p;
unsigned int words_n;
md5_uint32 A, B, C, D;
words_n = buf_len / sizeof(md5_uint32);
end_p = (char *)buf_p + words_n * sizeof(md5_uint32);
A = md5_p->md_A;
B = md5_p->md_B;
C = md5_p->md_C;
D = md5_p->md_D;
/*
* First increment the byte count. RFC 1321 specifies the possible
* length of the file up to 2^64 bits. Here we only compute the
* number of bytes with a double word increment. Modified to do
* this to better avoid overflows in the lower word -- Gray 10/97.
*/
if (md5_p->md_total[0] > MAX_MD5_UINT32 - buf_len) {
md5_p->md_total[1]++;
md5_p->md_total[0] -= (MAX_MD5_UINT32 - buf_len);
}
else {
md5_p->md_total[0] += buf_len;
}
/*
* Process all bytes in the buffer with MD5_BLOCK bytes in each
* round of the loop.
*/
while (buf_p < end_p) {
md5_uint32 A_save, B_save, C_save, D_save;
md5_uint32 *corr_p = correct;
A_save = A;
B_save = B;
C_save = C;
D_save = D;
/*
* Before we start, one word to the strange constants. They are
* defined in RFC 1321 as
*
* T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..MD5_BLOCK
*/
/* Round 1. */
OP1 (A, B, C, D, buf_p, corr_p, 7, 0xd76aa478);
OP1 (D, A, B, C, buf_p, corr_p, 12, 0xe8c7b756);
OP1 (C, D, A, B, buf_p, corr_p, 17, 0x242070db);
OP1 (B, C, D, A, buf_p, corr_p, 22, 0xc1bdceee);
OP1 (A, B, C, D, buf_p, corr_p, 7, 0xf57c0faf);
OP1 (D, A, B, C, buf_p, corr_p, 12, 0x4787c62a);
OP1 (C, D, A, B, buf_p, corr_p, 17, 0xa8304613);
OP1 (B, C, D, A, buf_p, corr_p, 22, 0xfd469501);
OP1 (A, B, C, D, buf_p, corr_p, 7, 0x698098d8);
OP1 (D, A, B, C, buf_p, corr_p, 12, 0x8b44f7af);
OP1 (C, D, A, B, buf_p, corr_p, 17, 0xffff5bb1);
OP1 (B, C, D, A, buf_p, corr_p, 22, 0x895cd7be);
OP1 (A, B, C, D, buf_p, corr_p, 7, 0x6b901122);
OP1 (D, A, B, C, buf_p, corr_p, 12, 0xfd987193);
OP1 (C, D, A, B, buf_p, corr_p, 17, 0xa679438e);
OP1 (B, C, D, A, buf_p, corr_p, 22, 0x49b40821);
/* Round 2. */
OP234 (FG, A, B, C, D, correct[ 1], 5, 0xf61e2562);
OP234 (FG, D, A, B, C, correct[ 6], 9, 0xc040b340);
OP234 (FG, C, D, A, B, correct[ 11], 14, 0x265e5a51);
OP234 (FG, B, C, D, A, correct[ 0], 20, 0xe9b6c7aa);
OP234 (FG, A, B, C, D, correct[ 5], 5, 0xd62f105d);
OP234 (FG, D, A, B, C, correct[ 10], 9, 0x02441453);
OP234 (FG, C, D, A, B, correct[ 15], 14, 0xd8a1e681);
OP234 (FG, B, C, D, A, correct[ 4], 20, 0xe7d3fbc8);
OP234 (FG, A, B, C, D, correct[ 9], 5, 0x21e1cde6);
OP234 (FG, D, A, B, C, correct[ 14], 9, 0xc33707d6);
OP234 (FG, C, D, A, B, correct[ 3], 14, 0xf4d50d87);
OP234 (FG, B, C, D, A, correct[ 8], 20, 0x455a14ed);
OP234 (FG, A, B, C, D, correct[ 13], 5, 0xa9e3e905);
OP234 (FG, D, A, B, C, correct[ 2], 9, 0xfcefa3f8);
OP234 (FG, C, D, A, B, correct[ 7], 14, 0x676f02d9);
OP234 (FG, B, C, D, A, correct[ 12], 20, 0x8d2a4c8a);
/* Round 3. */
OP234 (FH, A, B, C, D, correct[ 5], 4, 0xfffa3942);
OP234 (FH, D, A, B, C, correct[ 8], 11, 0x8771f681);
OP234 (FH, C, D, A, B, correct[ 11], 16, 0x6d9d6122);
OP234 (FH, B, C, D, A, correct[ 14], 23, 0xfde5380c);
OP234 (FH, A, B, C, D, correct[ 1], 4, 0xa4beea44);
OP234 (FH, D, A, B, C, correct[ 4], 11, 0x4bdecfa9);
OP234 (FH, C, D, A, B, correct[ 7], 16, 0xf6bb4b60);
OP234 (FH, B, C, D, A, correct[ 10], 23, 0xbebfbc70);
OP234 (FH, A, B, C, D, correct[ 13], 4, 0x289b7ec6);
OP234 (FH, D, A, B, C, correct[ 0], 11, 0xeaa127fa);
OP234 (FH, C, D, A, B, correct[ 3], 16, 0xd4ef3085);
OP234 (FH, B, C, D, A, correct[ 6], 23, 0x04881d05);
OP234 (FH, A, B, C, D, correct[ 9], 4, 0xd9d4d039);
OP234 (FH, D, A, B, C, correct[ 12], 11, 0xe6db99e5);
OP234 (FH, C, D, A, B, correct[ 15], 16, 0x1fa27cf8);
OP234 (FH, B, C, D, A, correct[ 2], 23, 0xc4ac5665);
/* Round 4. */
OP234 (FI, A, B, C, D, correct[ 0], 6, 0xf4292244);
OP234 (FI, D, A, B, C, correct[ 7], 10, 0x432aff97);
OP234 (FI, C, D, A, B, correct[ 14], 15, 0xab9423a7);
OP234 (FI, B, C, D, A, correct[ 5], 21, 0xfc93a039);
OP234 (FI, A, B, C, D, correct[ 12], 6, 0x655b59c3);
OP234 (FI, D, A, B, C, correct[ 3], 10, 0x8f0ccc92);
OP234 (FI, C, D, A, B, correct[ 10], 15, 0xffeff47d);
OP234 (FI, B, C, D, A, correct[ 1], 21, 0x85845dd1);
OP234 (FI, A, B, C, D, correct[ 8], 6, 0x6fa87e4f);
OP234 (FI, D, A, B, C, correct[ 15], 10, 0xfe2ce6e0);
OP234 (FI, C, D, A, B, correct[ 6], 15, 0xa3014314);
OP234 (FI, B, C, D, A, correct[ 13], 21, 0x4e0811a1);
OP234 (FI, A, B, C, D, correct[ 4], 6, 0xf7537e82);
OP234 (FI, D, A, B, C, correct[ 11], 10, 0xbd3af235);
OP234 (FI, C, D, A, B, correct[ 2], 15, 0x2ad7d2bb);
OP234 (FI, B, C, D, A, correct[ 9], 21, 0xeb86d391);
/* Add the starting v
没有合适的资源?快使用搜索试试~ 我知道了~
自走棋_example.rar
共1429个文件
h:160个
cpp:75个
o:27个
2星 需积分: 49 13 下载量 172 浏览量
2019-11-21
10:37:33
上传
评论 2
收藏 36.27MB RAR 举报
温馨提示
自走棋demo,epoll服务器,完整版,笔者已经测试完成,单个网关可支持3000+在线,特别是网关服稳定可靠。多个无状态服务器,利用redis做集群
资源推荐
资源详情
资源评论
收起资源包目录
自走棋_example.rar (1429个子文件)
0072a5d821671d7e1b2cfbbd3b620499a383d6 189B
0072abfbcdb78b0ed0f1af8e8cc39b509b3fb1 258B
00ab1dc4ff310e1d4e5e98e7a947ccf918ef5d 174B
00c824a619697deb34a68c591992675bd64fda 791B
00cc690d8bba470593fbf4dddb0c3b0c7199d9 432B
0149ec38b944924b3ae16a470335170e8d4ae0 156B
016c04e417fa683e30aea3098330a350d6961b 1KB
0193e2dfc2f09376f62157fd1ac44a10301df2 424B
01ebfd5bc88da208f9e3f2c4ca4e7a3b8ae7b3 2KB
01f48faa71fbd4aa8a55e29e827e0746062718 423B
01fa7d13f76f043ed6c0047975ae67b16aba09 1KB
043813d5cdd0f7bb16bb59938bec099182b03a 167B
043cda26a2da16518b3a8e231263e12e572da3 1KB
045bd4f94a28d02d5e82822c1f42fd1c41bb18 2KB
04a79784eb7c5d536597f12fdf5213ce978573 767B
04cc40429735589f8ad81a116c9ce1c72b7b0f 1KB
04f10dbb60883de015e61ed408944392f9bf28 258B
04f38cd1879423bfc021ee33c7801e5d632ad0 858B
050504c52026b1fb28f66795db8e074e2b2960 368B
06afe70c1882a47cb97e686161f7d59685fadd 329B
0710d69fa01b16c66ab71d81167ad24dafa5df 2KB
0716d10cea340715878f1ee47dc6f53516b518 617B
07a16e7f6a74a27d3233bbe437b66bd171234f 251B
07d7e7ab7519c8d1d038233eb272f3ec5418a4 2KB
0846ff7ca5acbdfe758d2d95171430157c7ac8 4KB
086e50d56716136b38cf365cb44a8d3216646b 594B
08975e0ee539c81c1093523a502cbf3eaed1fe 825B
089829da24d91f13c6c7857d664e66ef637d7c 101B
09535fdc9d45eee6317018daa1d8f5bfae9a67 1KB
096003db19d626bfacdafedae00dcbe5503ea8 176B
097be556ed82ab841ba36066bf85163fae1b43 311B
097ed03dcc6828bbfba64712f1d3b7baafce55 919B
09e2f149cd8b160af116acde33a455636c75aa 1KB
09f5c6ef45cf54db5543705eb2cc6597fd56db 167B
0a0de792f0998123a9f4d527456cd4cbbdd462 369B
0a2774f53df70205ac0522d7b80cb60e3c67d8 541B
0a404e6bed03cf17d3fed6b90288c64dc1b48b 4KB
0a439e5927d1a45753c255cc3dc0e9394ed2f9 616B
0a74d477f222e27b49bb3ec9f5df76a046bb35 257B
0a97496836486d3dc35171e0f51cf19e8f326e 978B
0a99b1f402d371a1471c5073c438947297c853 200B
0ac191f6ee3245e27e8f2e3b8e4d7583538488 2KB
0af06dff67c7fdc47198669962a0e12115ae6f 803B
0b25e55f17f4b77901fbb7038593bce718caf4 1KB
0b28fbca9642f235556e8be3b5fdbe9270efbf 374B
0b64977a5a3792d8ec1d53d0de1dd6b0974d32 1KB
0b95eda03f146ef08eebec7e1c7b509b857310 1KB
0cf5768a28ef3e56a082337e7fee3b6a2a8700 497B
0d11bb5b761d1d629841575e0f95a8005e6799 398B
0d3645b475c410eca147739f134853f15f4a2d 2KB
0d6659337c732db4e286c4810b7aaddfb6c389 223B
0d760c0e9845f0bdaa8c5c390b787133c3989c 217B
0db4c05a8b5067cc2ec7c3c1caabfb0e5e9eef 696B
0dd61674974e15df47f9a2cf6ea03297abe8aa 824B
0e325fefade47b11ea8921f9b0d4aaf342b657 1KB
0e43907413877fc4592422b9ff180d5fd0e747 233B
0e9e8117238abd96f6e2ae2bf6a55430fa0c55 17KB
0ee61a6d02dfb40133965ebbfe6c55c9df26af 308B
0ee9ff6c94ac9a9d842c27ff981c8d2757efcb 104B
0f31ea76204b319651b144dcd197590743b90a 486B
0f9ede531c353fbe90e0e0478136428f9f9ca2 532B
1007bb7f839bf5f3d72d30c4174ee79d5841e6 180B
1012784f3d4df5f149e09e45f7139d7894258f 179B
101f54e5c913221a45c43e71c93094830851bc 217B
10222fdf39789081ad6039b613dfcd349f33cb 195B
102260a59370b57f22acee4b8386be9d5891f8 795B
104ea49ee53488291fbf262cb3575cfe10c6b7 2KB
105bc7a4a0f58b6fc36e210620657e57907105 216B
106780220ff0889c538bad9a1ec7accc8d5e9b 2KB
1084dde57e7f8b62f1dfc744a6eaecc622ddb8 548B
115acc095d6e3fe4c50e7ca366348769eacc11 3KB
11628b513a5106b13e962f5254e7b32990a727 223B
1247d24a8923d0bf5f9c894e7d409b7f50b36d 1KB
126c30f5ac739e41f3e71573215cb8c8bb806f 648B
12a3f463a6703c44f6a5787cafc6471db91ad5 3KB
1315f3a48805f504ffb0757756f4253e018733 863B
13c8b0da8efe5405643a369f19fce1a501194a 396B
13ce786027dfb6eab1c81e21572402bd07a261 2KB
13f8e0eaf38f1c4cd536662f17fca801de8759 1KB
143542a8ee665c27c0a9a16da69f087a3b7478 847B
14441349221ec630efb7f238a587f56a8bc0c2 424B
144eabc6f83e829fb79ba4a39df3a33eb68948 174B
1467e6d3bf44e530c315b0b094d28e84373bf7 144B
14701f9de2f8e1a459b7c8218dd99857d6ff1e 259B
151201e45ef2db66e07819e67d7e4a382fa735 813B
15259ed7037484cb1714d5dedd438742b37213 3KB
1567e6a7280e952e1aaeef82010b45136c47b7 258B
1580ca5512ed5cc296be3fa1c173a982e12585 512B
15bef9bc14b5ac1fa79f37d96b60fe3a945f71 138B
15f55c0e17e5501c209e958f83ddc251c50276 867B
1609a6f5608f3d3a6f3fe73979e6bd2c9ae31d 367B
16e2292fa4a5f9140c230f1d0e0818c004ca9d 336B
1718ed7abd3f20a3f716292893973aee4bd41d 793B
1778ec6ff3960bb2e3f5dbb30e39f257b5b966 931B
17a21a1499826597c3da26f31ae564ab9b7c85 155B
17fb898be817df1442c221420be55257e5b96c 2KB
17fe2289c78e712ae0965a2bd7f072b3f2d73c 340B
180d48ac6b814cc16bcadbc634c0f88f40ce9e 228B
182e09c8c1886a0e21d53c69baea7455718d89 478B
183b8ca0fd2619edc7e78d887149d889a5cb12 931B
共 1429 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
资源评论
- Mr_Tan912020-09-27有378个错误你也分享出来??
- 叮咚呛咚呛2020-09-14这玩意一个说明都不给的么,拿着也用处不大呀
YZF_Kevin
- 粉丝: 4477
- 资源: 54
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 关于mybatis的一些相关资源
- 关于mybatist的一些相关资源
- uni-app实战社区交友类app开发&带视频教程
- mybatis动态sql的一些相关资源
- 隐马尔可夫模型在期货市场的应用_曾琦裕 (1).caj
- 极域解控和极域反控!!!
- 安卓android-serialport-api 串口demo源代码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功