当前位置:首页 » 课程大全 » md5课程设计

md5课程设计

发布时间: 2021-02-12 02:07:05

㈠ 求密码学课程设计 MD5的实现 源代码 高分

我有C语言的实现代码。
你把下面的代码复制下来,保存成md5lib.h,然后在C代码中:
#include "md5lib.h" 即可
其中:
char* MDString (char *string);是对字符串进行MD5
char* MDFile (char *filename);是对文件进行MD5
以下是代码
//--------------------------------
/* MD5lib.h - md5 library
*/

/* Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All
rights reserved.

RSA Data Security, Inc. makes no representations concerning either
the merchantability of this software or the suitability of this
software for any particular purpose. It is provided "as is"
without express or implied warranty of any kind.

These notices must be retained in any copies of any part of this
documentation and/or software.
*/

/* The following makes MD default to MD5 if it has not already been
defined with C compiler flags.
*/

#include <stdio.h>
#include <time.h>
#include <string.h>

#define MD 5

/* GLOBAL.H - RSAREF types and constants
*/

/* PROTOTYPES should be set to one if and only if the compiler supports
function argument prototyping.
The following makes PROTOTYPES default to 0 if it has not already
been defined with C compiler flags.
*/
#ifndef PROTOTYPES
#define PROTOTYPES 0
#endif

/* POINTER defines a generic pointer type */
typedef unsigned char *POINTER;

/* UINT2 defines a two byte word */
typedef unsigned short int UINT2;

/* UINT4 defines a four byte word */
typedef unsigned long int UINT4;

/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
returns an empty list.
*/
#if PROTOTYPES
#define PROTO_LIST(list) list
#else
#define PROTO_LIST(list) ()
#endif

/* Length of test block, number of test blocks.
*/
#define TEST_BLOCK_LEN 1000
#define TEST_BLOCK_COUNT 1000

/* Constants for MD5Transform routine.
*/
#define S11 7
#define S12 12
#define S13 17
#define S14 22
#define S21 5
#define S22 9
#define S23 14
#define S24 20
#define S31 4
#define S32 11
#define S33 16
#define S34 23
#define S41 6
#define S42 10
#define S43 15
#define S44 21

char* MDString PROTO_LIST ((char *));
char* MDFile PROTO_LIST ((char *));
char* hmac_md5(char* text, char* key);

typedef struct {
UINT4 state[4]; /* state (ABCD) */
UINT4 count[2]; /* number of bits, molo 2^64 (lsb first) */
unsigned char buffer[64]; /* input buffer */
} MD5_CTX;

/*void MD5Init PROTO_LIST ((MD5_CTX *));
void MD5Update PROTO_LIST
((MD5_CTX *, unsigned char *, unsigned int));
void MD5Final PROTO_LIST ((unsigned char [16], MD5_CT X *));

static void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64]));
static void Encode PROTO_LIST
((unsigned char *, UINT4 *, unsigned int));
static void Decode PROTO_LIST
((UINT4 *, unsigned char *, unsigned int));
static void MD5_memcpy PROTO_LIST ((POINTER, POINTER, unsigned int));
static void MD5_memset PROTO_LIST ((POINTER, int, unsigned int));
*/
static unsigned char 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
};

/* F, G, H and I are basic MD5 functions.
*/
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
#define H(x, y, z) ((x) ^ (y) ^ (z))
#define I(x, y, z) ((y) ^ ((x) | (~z)))

/* ROTATE_LEFT rotates x left n bits.
*/
#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))

/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
Rotation is separate from addition to prevent recomputation.
*/
#define FF(a, b, c, d, x, s, ac) {(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b);}
#define GG(a, b, c, d, x, s, ac) {(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b);}
#define HH(a, b, c, d, x, s, ac) {(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b);}
#define II(a, b, c, d, x, s, ac) {(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b);}
void MD5Init (MD5_CTX *context);
void MD5Update(MD5_CTX *context, unsigned char *input,unsigned int inputLen);

void MD5Final (unsigned char digest[16], MD5_CTX *context);
static void MD5Transform (UINT4 [4], unsigned char [64]) ;
static void Encode(unsigned char *, UINT4 *, unsigned int);
static void Decode (UINT4 *, unsigned char *, unsigned int);
static void MD5_memcpy(POINTER, POINTER, unsigned int);
static void MD5_memset(POINTER, int, unsigned int);

/* MD5 initialization. Begins an MD5 operation, writing a new context.
*/
void MD5Init (MD5_CTX *context)
/* context */
{
context->count[0] = context->count[1] = 0;
/* Load magic initialization constants.
*/
context->state[0] = 0x67452301;
context->state[1] = 0xefcdab89;
context->state[2] = 0x98badcfe;
context->state[3] = 0x10325476;
}

/* MD5 block update operation. Continues an MD5 message-digest
operation, processing another message block, and updating the
context.
*/
void MD5Update (MD5_CTX *context, unsigned char *input,unsigned int inputLen )
/* context */
/* input block */
/* length of input block */
{
unsigned int i, index, partLen;

/* Compute number of bytes mod 64 */
index = (unsigned int)((context->count[0] >> 3) & 0x3F);

/* Update number of bits */
if ((context->count[0] += ((UINT4)inputLen << 3))
< ((UINT4)inputLen << 3))
context->count[1]++;
context->count[1] += ((UINT4)inputLen >> 29);

partLen = 64 - index;

/* Transform as many times as possible.
*/
if (inputLen >= partLen) {
MD5_memcpy
((POINTER)&context->buffer[index], (POINTER)input, partLen);
MD5Transform (context->state, context->buffer);

for (i = partLen; i + 63 < inputLen; i += 64)
MD5Transform (context->state, &input[i]);

index = 0;
}
else
i = 0;

/* Buffer remaining input */
MD5_memcpy
((POINTER)&context->buffer[index], (POINTER)&input[i],
inputLen-i);
}

/* MD5 finalization. Ends an MD5 message-digest operation, writing the
the message digest and zeroizing the context.
*/
void MD5Final (unsigned char digest[16], MD5_CTX *context)
/* message digest */
/* context */
{
unsigned char bits[8];
unsigned int index, padLen;

/* Save number of bits */
Encode (bits, context->count, 8);

/* Pad out to 56 mod 64.
*/
index = (unsigned int)((context->count[0] >> 3) & 0x3f);
padLen = (index < 56) ? (56 - index) : (120 - index);
MD5Update (context,(unsigned char*) PADDING, padLen);

/* Append length (before padding) */
MD5Update (context, bits, 8);
/* Store state in digest */
Encode (digest, context->state, 16);

/* Zeroize sensitive information.
*/
MD5_memset ((POINTER)context, 0, sizeof (*context));
}

/* MD5 basic transformation. Transforms state based on block.
*/
static void MD5Transform (UINT4 state[4],
unsigned char block[64])

{
int i=0;

UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];

Decode (x, block, 64);

/* Round 1 */
FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */

/* Round 2 */
GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */
GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */

/* Round 3 */
HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */

/* Round 4 */
II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */

state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;

/* Zeroize sensitive information.
*/
MD5_memset ((POINTER)x, 0, sizeof (x));
}

/* Encodes input (UINT4) into output (unsigned char). Assumes len is
a multiple of 4.
*/
static void Encode (unsigned char *output,
UINT4 *input,
unsigned int len)

{
unsigned int i, j;

for (i = 0, j = 0; j < len; i++, j += 4) {
output[j] = (unsigned char)(input[i] & 0xff);
output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
}
}

/* Decodes input (unsigned char) into output (UINT4). Assumes len is
a multiple of 4.
*/
static void Decode (UINT4 *output,
unsigned char *input,
unsigned int len)

{
unsigned int i, j;

for (i = 0, j = 0; j < len; i++, j += 4)
output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
(((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
}

/* Note: Replace "for loop" with standard memcpy if possible.
*/

static void MD5_memcpy (POINTER output,
POINTER input,
unsigned int len)

{
unsigned int i;

for (i = 0; i < len; i++)
output[i] = input[i];
}

/* Note: Replace "for loop" with standard memset if possible.
*/
static void MD5_memset (POINTER output,
int value,
unsigned int len)

{
unsigned int i;

for (i = 0; i < len; i++)
((char *)output)[i] = (char)value;
}

/* Digests a string and prints the result.
*/
char* MDString (char *string)

{
MD5_CTX context;
unsigned char digest[16];
char output1[32];
static char output[33]={""};
unsigned int len = strlen (string);
int i;
MD5Init (&context);
MD5Update (&context, (unsigned char*)string, len);
MD5Final (digest, &context);

for (i = 0; i < 16; i++)
{sprintf(&(output1[2*i]),"%02x",(unsigned char)digest[i]);
sprintf(&(output1[2*i+1]),"%02x",(unsigned char)(digest[i]<<4));
}
for(i=0;i<32;i++)
output[i]=output1[i];
return output;
}

/* Digests a file and prints the result.
*/
char* MDFile (char *filename)

{ static char output[33]={""};
FILE *file;
MD5_CTX context;
int len;
unsigned char buffer[1024], digest[16];
int i;
char output1[32];
if ((file = fopen (filename, "rb")) == NULL)
{ printf ("%s can't be openedn", filename);
return 0;
}
else {
MD5Init (&context);
while (len = fread (buffer, 1, 1024, file))
MD5Update (&context, buffer, len);
MD5Final (digest, &context);
fclose (file);
for (i = 0; i < 16; i++)
{sprintf(&(output1[2*i]),"%02x",(unsigned char)digest[i]);
sprintf(&(output1[2*i+1]),"%02x",(unsigned char)(digest[i]<<4));
}
for(i=0;i<32;i++)
output[i]=output1[i];
return output;
}
}

char* hmac_md5(char* text,char* key)
{
char digest[16];
char output1[32];
static char output[33]={""};
MD5_CTX context;
unsigned char k_ipad[65]; /* inner padding -
* key XORd with ipad
*/
unsigned char k_opad[65]; /* outer padding -
* key XORd with opad
*/
unsigned char tk[16];
int i;
int text_len = strlen (text);
int key_len=strlen(key);
/* if key is longer than 64 bytes reset it to key=MD5(key) */
if (key_len > 64) {

MD5_CTX tctx;

MD5Init(&tctx);
MD5Update(&tctx,(unsigned char*) key, key_len);
MD5Final(tk, &tctx);

key = (char*)tk;
key_len = 16;
}

/*
* the HMAC_MD5 transform looks like:
*
* MD5(K XOR opad, MD5(K XOR ipad, text))
*
* where K is an n byte key
* ipad is the byte 0x36 repeated 64 times
* opad is the byte 0x5c repeated 64 times
* and text is the data being protected
*/

/* start out by storing key in pads */

/*bzero( k_ipad, sizeof k_ipad);
bzero( k_opad, sizeof k_opad);
*/

for(i=0;i<65;i++)
k_ipad[i]=(unsigned char)0;
for(i=0;i<65;i++)
k_opad[i]=(unsigned char)0;

/*b( key, k_ipad, key_len);
b( key, k_opad, key_len);
*/
for(i=0;i<key_len;i++)
{k_ipad[i]=(unsigned char)key[i];
k_opad[i]=(unsigned char)key[i];
}

/* XOR key with ipad and opad values */
for (i=0; i<64; i++) {
k_ipad[i] ^= 0x36;
k_opad[i] ^= 0x5c;
}
/*
* perform inner MD5
*/
MD5Init(&context); /* init context for 1st
* pass */
MD5Update(&context, k_ipad, 64); /* start with inner pad */
MD5Update(&context, (unsigned char*)text, text_len); /* then text of datagram

*/
MD5Final((unsigned char*)digest, &context); /* finish up 1st pass */
/*
* perform outer MD5
*/
MD5Init(&context); /* init context for 2nd
* pass */
MD5Update(&context, k_opad, 64); /* start with outer pad */
MD5Update(&context,(unsigned char*) digest, 16); /* then results of 1st
* hash */
MD5Final((unsigned char*)digest, &context); /* finish up 2nd pass */
for (i = 0; i < 16; i++)
{sprintf(&(output1[2*i]),"%02x",(unsigned char)digest[i]);
sprintf(&(output1[2*i+1]),"%02x",(unsigned char)(digest[i]<<4));
}
for(i=0;i<32;i++)
output[i]=output1[i];
return output;
}

㈡ 急求机械课程设计 带式传送 2级同轴式圆柱齿轮 设计

目 录
第一部分 设计任务书----------------------------------------------------------------3第二部分 电传动方案的分析与拟定---------------------------------------------------5第三部分 电动机的选择计算----------------------------------------------------------6第四部分 各轴的转速、转矩计算------------------------------------------------------7第五部分 联轴器的选择-------------------------------------------------------------9第六部分 锥齿轮传动设计---------------------------------------------------------10第七部分 链传动设计--------------------------------------------------------------12第八部分 斜齿圆柱齿轮设计-------------------------------------------------------14第九部分 轴的设计----------------------------------------------------------------17第十部分 轴承的设计及校核-------------------------------------------------------20第十一部分 高速轴的校核---------------------------------------------------------22第十二部分 箱体设计---------------------------------------------------------------23第十三部分 设计小结---------------------------------------------------------------24

第一部分 设计任务书
1.1 机械设计课程的目的
机械设计课程设计是机械类专业和部分非机械类专业学生第一次较全面的机械设计训练,是机械设计和机械设计基础课程重要的综合性与实践性教学环节。其基本目的是:
(1) 通过机械设计课程的设计,综合运用机械设计课程和其他有关先修课程的理论,结合生产实际知识,培养分析和解决一般工程实际问题的能力,并使所学知识得到进一步巩固、深化和扩展。
(2) 学习机械设计的一般方法,掌握通用机械零件、机械传动装置或简单机械的设计原理和过程。
(3) 进行机械设计基本技能的训练,如计算、绘图、熟悉和运用设计资料(手册、图册、标准和规范等)以及使用经验数据,进行经验估算和数据处理等。

1.2 机械设计课程的内容
选择作为机械设计课程的题目,通常是一般机械的传动装置或简单机械。
课程设计的内容通常包括:确定传动装置的总体设计方案;选择电动机;计算传动装置的运动和动力参数;传动零件、轴的设计计算;轴承、联轴器、润滑、密封和联接件的选择及校核计算;箱体结构及其附件的设计;绘制装配工作图及零件工作图;编写设计计算说明书。
在设计中完成了以下工作:
① 减速器装配图1张(A0或A1图纸);
② 零件工作图2~3张(传动零件、轴、箱体等);
③ 设计计算说明书1份,6000~8000字。

1.3 机械设计课程设计的步骤
机械设计课程设计的步骤通常是根据设计任务书,拟定若干方案并进行分析比较,然后确定一个正确、合理的设计方案,进行必要的计算和结构设计,最后用图纸表达设计结果,用设计计算说明书表示设计依据。
机械设计课程设计一般可按照以下所述的几个阶段进行:
1.设计准备
① 分析设计计划任务书,明确工作条件、设计要求、内容和步骤。
② 了解设计对象,阅读有关资料、图纸、观察事物或模型以进行减速器装拆试验等。
③ 浮系课程有关内容,熟悉机械零件的设计方法和步骤。
④ 准备好设计需要的图书、资料和用具,并拟定设计计划等。
2.传动装置总体设计
① 确定传动方案——圆柱齿轮传动,画出传动装置简图。
② 计算电动机的功率、转速、选择电动机的型号。
③ 确定总传动比和分配各级传动比。
④ 计算各轴的功率、转速和转矩。
3.各级传动零件设计
① 减速器内的传动零件设计(齿轮传动)。
4.减速器装配草图设计
① 选择比例尺,合理布置试图,确定减速器各零件的相对位置。
② 选择联轴器,初步计算轴径,初选轴承型号,进行轴的结构设计。
③ 确定轴上力作用点及支点距离,进行轴、轴承及键的校核计算。
④ 分别进行轴系部件、传动零件、减速器箱体及其附件的结构设计。
5.减速器装配图设计
① 标注尺寸、配合及零件序号。
② 编写明细表、标题栏、减速器技术特性及技术要求。
③ 完成装配图。
6.零件工作图设计
① 轴类零件工作图。
② 齿轮类零件工作图。
③ 箱体类零件工作图。

第一部分 题目及要求
卷扬机传动装置的设计
1. 设计题目
设计一卷扬机的传动装置。传动装置简图如下图所示。
(1)卷扬机数据
卷扬机绳牵引力F(N)、绳牵引速度v(m/s)及卷筒直径D(mm)见附表。
(2)工作条件
用于建筑工地提升物料,空载启动,连续运转,三班制工作,工作平稳。
(3) 使用期限
工作期限为十年,每年工作300天,三班制工作,每班工作4小时,检修期间隔为三年。
(4) 产批量及加工条件
小批量生产,无铸钢设备。
2. 设计任务
1)确定传动方案;
2)选择电动机型号;
3)设计传动装置;
4)选择联轴器。
3. 具体作业
1)减速器装配图一张;
2)零件工作图二张(大齿轮,输出轴);
3)设计说明书一份。
4. 数据表

牵引力F/N 12 10 8 7
牵引速度v/(m/s) 0.3,0.4 0.3,0.4,0.5,0.6
卷筒直径D/mm 470,500 420,430,450,470,500 430,450,500 440,460,480

卷扬机传动装置的设计
5. 设计题目
设计一卷扬机的传动装置。传动装置简图如下图所示。
(1)卷扬机数据
卷扬机绳牵引力F(N)、绳牵引速度v(m/s)及卷筒直径D(mm)见附表。
(2)工作条件
用于建筑工地提升物料,空载启动,连续运转,三班制工作,工作平稳。
(5) 使用期限
工作期限为十年,每年工作300天,三班制工作,每班工作4小时,检修期间隔为三年。
(6) 产批量及加工条件
小批量生产,无铸钢设备。
6. 设计任务
1)确定传动方案;
2)选择电动机型号;
3)设计传动装置;
4)选择联轴器。
7. 具体作业
1)减速器装配图一张;
2)零件工作图二张(大齿轮,输出轴);
3)设计说明书一份。
8. 数据表

牵引力F/N 12 10 8 7
牵引速度v/(m/s) 0.3,0.4 0.3,0.4,0.5,0.6
卷筒直径D/mm 470,500 420,430,450,470,500 430,450,500 440,460,480

第二部分 传动方案的分析与拟定
确定总传动比:
由于Y系列三相异步电动机的同步转速有750,1000,1500和3000r/min四种可供选择.根据原始数据,得到卷扬机卷筒的工作转速为

按四种不同电动机计算所得的总传动比分别是:
电动机同步转速
750 1000 1500 3000
系统总传动比
32.71 43.61 65.42 130.83

确定电动机转速:
综合考虑电动机和传动装置的尺寸、重量、价格以及总传动比,750转的低速电动机传动比虽小,但电动机极数大价格高,故不可取。3000转的电动机重量轻,价格便宜,但总传动比大,传动装置外廓尺寸大,制造成本高,结构不紧凑,也不可取。剩下两种相比,如为使传动装置结构紧凑,选用1000转的电动机较好;如考虑电动机重量和价格,则应选用1500转的电动机。现选用1500转的电动机,以节省成本。
确定传动方案:

验算:通常V带传动的传动比常用范围为 ,二级圆柱齿轮减速器为 ,则总传动比的范围为 ,因此能够满足以上总传动比为65.42的要求。

第三部分 电动机的选择计算
1、确定电动机类型
按工作要求和条件,选用Y系列笼型三相异步电动机,封闭式结构。
2、确定电动机的功率
工作机的功率
KW

效率的选择:
1. V带传动效率: η1 = 0.96
2. 7级精度圆柱齿轮传动:η2 = 0.98
3. 滚动轴承: η3 = 0.99
4. 弹性套柱销联轴器: η4 = 0.99
5. 传动滚筒效率: η5 = 0.96
传动装置总效率为

工作机所需电动机功率
kw
因载荷平稳,电动机额定功率 略大于 即可。由Y系列电动机技术数据,选电动机的额定功率 为7.5 kw,结合其同步转速,选定电动机的各项参数如下:
取同步转速: 1500r/min ——4级电动机
型号: Y132M-4
额定功率: 7.5kW
满载功率: 1440r/min
堵转转矩/额定转矩: 2.2
最大转矩/额定转矩: 2.2

第四部分 确定传动装置总传动比和分配各级传动比
1、确定总传动比

2、分配各级传动比
取V带传动的传动比 ,则减速器的传动比 为

取两级圆柱齿轮减速器高速级的传动比

则低速级的传动比

第五部分 运动参数及动力参数计算
0轴(电动机轴):
P0 = Pd =7.2 kW
n0 = nm = 1440 r/min
T0 = 9550×( )= N•m
1轴(高速轴):
P1 = P0η1 = kW
n1 = = r/min
T1 = 9550×( )= N•m
2轴(中间轴):
P2 = P1η2η3 = kW
n2 = r/min
T2 = 9550×( )= N•m
3轴(低速轴):
P3 = P2η2η3 = kW
n3 = r/min
T3 = 9550×( )= N•m
4轴(输出轴):
P4 = P3η3η4 = kW
n4 = r/min
T4 = 9550×( )= N•m

输出轴功率或输出轴转矩为各轴的输入功率或输入转矩乘以轴承效率(0.99),即
P’= 0.99P

轴名 功率P(kW) 转矩T(N•m) 转速
n(r/min) 传动比
i 效率
η
输入 输出 输入 输出
电动机轴 7.20 47.75 1440
3.8 0.96
1轴 6.91 3.047 155.91 154.35 378.95
4.809 0.97
2轴 6.70 2.896 811.99 803.83 78.80
3.435 0.97
3轴 6.50 2.753 2705.97 2678.91 22.94
1 0.98
输出轴 6.37 2.590 2651.85 2625.33 22.94

第六部分 传动零件的设计计算
高速级斜齿圆柱齿轮设计
材料选择:小齿轮40Cr (调质)硬度280HBs;
大齿轮45#钢(调质)硬度240HBs;(硬度差40HBs)
七级精度,取Z1=21,Z2= =4.809×21=100.989,取Z2=101,
初选螺旋角β=14°,
按齿轮面接触强度设计:

1) 试选载荷系数 Kt=1.6
2) 由动力参数图,小齿轮传递的转矩

3) 由表10-7(机械设计)选取齿宽系数
4) 由表10-6查得材料的弹性影响系数
5) 由图10-21d按齿面硬度查得小齿轮的接触疲劳强度极限 ;大齿轮的接触疲劳强度极限 ;
6) 由式10-13计算应力循环次数

7) 由图10-19查得接触疲劳寿命系数 ;
8) 计算接触疲劳许用应力
取失效概率为1%,安全系数S=1,由式(10-12)得

9)由图10-26(机械设计)得
εα1 = 0.76
εα2 = 0.86
则端面重合度
10)由图10-30选取区域系数ZH = 2.433
11) 计算许用接触应力
=
12)计算:
试算小齿轮分度圆直径 ,由计算公式得
计算圆周速度

计算齿宽b及模数
= 1×60.59 = 60.59 mm
mnt = = mm
h = 2.25 mnt = mm

计算纵向重合度
纵向重合度 =0.318×φdZ1tanβ =
计算载荷系数K
已知,KA=1,取Kv=1.05(由图10-8查得),由表10-4查得的计算公式
∴KHβ = 1.15+0.18(1+0.6φd2)+0.23×10-3×60.59 = 1.45
由图10-13,得KFβ = 1.4
由表10-3,得
∴K = KA•Kv•KHα•KHβ = 1×1.05×1.3×1.45 = 1.98
按实际得载荷系数校正所算得德分度圆直径,由试(10-10a)得

计算模数
mn= =
13) 按齿根弯曲强度设计

由图10-20c查得小齿轮的弯曲疲劳强度极限 ;大齿轮的弯曲疲劳强度极限 ;
由图10-18查得弯曲疲劳寿命系数 ;
计算弯曲疲劳许用应力
取弯曲疲劳安全系数S=1.4,由式10-12得

计算载荷系数
K = KA•Kv•KFα•KFβ = 1×1.05×1.3×1.4= 1.91
根据纵向重合度εβ=1.6650,由图10-28,查得螺旋角影响系数Yβ=0.88
计算当量齿数
= 22.9883

查取齿形系数
由表10-5查得 YFα1=2.69,YFα2=2.20,
查取应力校正系数
由表10-5查得 YSα1=1.56,YSα2=1.79
计算大、小齿轮的 并加以比较

大齿轮的数值较大。
设计计算

经园整,mn=2 mm
∵ ,∴mn=2.5 mm
Z1 = = ,取Z1=25,Z2=120

几何尺寸计算:
中心距 a =
经园整,a = 187 mm
修正螺旋角, =
∵β变动不大,
∴εα、εβ、ZH无需修正。
计算大、小齿轮的分度直径
mm
mm
计算齿轮宽度
b = φdd1 = mm
园整后,B2=65mm,B1=70mm

da1 = d1+2ha1 =69.48
da2 = d2+2ha2 = 315.08
df1 = d1-2hf1 = 49.48
df2 = d2-2hf2 =305.08

第九部分 轴的设计
1) 高速轴:
初定最小直径,选用材料45#钢,调质处理。取A0=112(下同)
则dmin = A0 = mm
∵最小轴径处有键槽
∴dmin’ = 1.07 dmin = 17.72mm
∵最小直径为安装联轴器外半径,取KA=1.7,同上所述已选用TL4弹性套柱联轴器,轴孔半径d=20mm
∴取高速轴的最小轴径为20mm。
由于轴承同时受径向和轴向载荷,故选用单列圆锥滚子轴承按国标T297-94选取30206。
D×d×T=17.25mm
∴轴承处轴径d=30mm
高速轴简图如下:
2)
取l1=38+46=84mm,l3=72mm,取挡圈直径D=28mm,取d2=d4=25mm,d3=30mm,l2=l4=26.5mm,d1=d5=20mm。
齿轮轮毂宽度为46mm,取l5=28mm。

联轴器用键:园头普通平键。
b×h=6×6,长l=26mm
齿轮用键:同上。b×h=6×6,长l=10mm,倒角为2×45°
3) 中间轴:
中间轴简图如下:
初定最小直径dmin= =22.1mm
选用30305轴承,
d×D×T = 25×62×18.25mm
∴d1=d6=25mm,取l1=27mm,l6=52mm
l2=l4=10mm,d2=d4=35mm,l3=53mm
d3=50mm,d5=30mm,l5=1.2×d5=36mm
齿轮用键:园头普通键:b×h=12×8,长l=20mm
4) 低速轴:
低速轴简图如下: 初定最小直径:
dmin = = 34.5mm
∵最小轴径处有键槽
∴dmin’=1.07dmin=36.915mm
取d1=45mm,d2=55mm,d3=60mm,d4=d2=55mm
d5=50mm,d6=45mm,d7=40mm;
l1=45mm,l2=44mm,l3=6mm,l4=60mm,l5=38mm,l6=40mm,l7=60mm
齿轮用键:园头普通键:b×h=16×6,长l=36mm
选用30309轴承:d×D×T = 40×90×25.25mm;B=23mm;C=20mm

㈢ 从网上下了一个管理系统课程设计 登陆密码怎么能知道阿数据库和SQL2005

额,你这个问题比较麻烦!
一般用户名和密码都是admin
如果数据库里的都不对
那就只要暴力破解了

㈣ 大一课程设计,电话蒲(hash表)

*nix系系统:
ES(Unix)
例子: IvS7aeT4NzQPM
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:第1、2位为salt,例子中的'Iv'位salt,后面的为hash值
系统:MD5(Unix)
例子:$1$12345678$XM4P3PrKBgKNnTaqG9P0T/
说明:Linux或者其他linux内核系统中
长度:34个字符
描述:开始的$1$位为加密标志,后面8位12345678为加密使用的salt,后面的为hash
加密算法:2000次循环调用MD5加密
系统:SHA-512(Unix)
例子:$6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEm
说明:Linux或者其他linux内核系统中
长度: 13 个字符
描述:开始的$6$位为加密标志,后面8位为salt,后面的为hash
加密算法:5000次的SHA-512加密
系统:SHA-256(Unix)
例子:$5$12345678$jBWLgeYZbSvREnuBr5s3gp13vqi
说明:Linux或者其他linux内核系统中
长度: 55 个字符
描述:开始的$5$位为加密标志,后面8位为salt,后面的为hash
加密算法:5000次的SHA-256加密
系统:MD5(APR)
例子:$apr1$12345678$auQSX8Mvzt.tdBi4y6Xgj.
说明:Linux或者其他linux内核系统中
长度:37个字符
描述:开始的$apr1$位为加密标志,后面8位为salt,后面的为hash
加密算法:2000次循环调用MD5加密
windows系统:
windows
例子:Admin:
长度:98个字符
加密算法:MD4(MD4(Unicode($pass)).Unicode(strtolower($username)))
mysql
系统:mysql
例子:606717496665bcba
说明:老版本的MySql中
长度:8字节(16个字符)
说明:包括两个字节,且每个字的值不超过0x7fffffff
系统:MySQL5
例子:*
说明:较新版本的MySQL
长度:20字节(40位)
加密算法:SHA-1(SHA-1($pass))
其他系统:
系统:MD5(WordPress)
例子:$P$
说明:WordPress使用的md5
长度:34个字符
描述:$P$表示加密类型,然后跟着一位字符,经常是字符‘B’,后面是8位salt,后面是就是hash
加密算法:8192次md5循环加密

系统:MD5(phpBB3)
说明:phpBB 3.x.x.使用
例子:$H$9123456785DAERgALpsri.D9z3ht120
长度:34个字符
描述:开始的$H$为加密标志,后面跟着一个字符,一般的都是字符‘9’,然后是8位salt,然后是hash 值
加密算法:2048次循环调用MD5加密
系统:RAdmin v2.x
说明:Remote Administrator v2.x版本中
例子:
长度:16字节(32个字符)
加密算法:字符用0填充到100字节后,将填充过后的字符经过md5加密得到(32位值)
md5加密
标准MD5
例子:
使用范围:phpBB v2.x, Joomla 的 1.0.13版本前,及其他cmd
长度:16个字符
其他的加salt及变形类似:
md5($salt.$pass)
例子::12
md5(md5($pass))
例子:
md5(md5($pass).$salt)
例子::wQ6
md5(md5($salt).md5($pass))
例子: :wH6_S
md5(md5($salt).$pass)
例子: :1234

㈤ 急求数据库课程设计,人力资源管理系统(人事管理)

基于asp语言的测试项目
学生信息管理系统的设计与实现
基于ASP.NET的社区人口管理系统
基于ASP.NET的课程教学网站设计
公司会议网站
C#高校工资管理系统
C#在线点歌系统
《数据库原理》精品课程网站设计
教师住房管理系统
《计算机网络》学习网站的设计与实现
《模式识别》精品课程网站的设计与实现
asp个人博客
asp网上书店
微型计算机学习网站的设计与实现
成绩分析系统的设计与实现
宠物管理系统
基于3G通信的视频医药系统设计
基于web的图书馆图书信息查询系统
离散数学网上教学系统
企业进销存管理系统分析与设计
人力资源管理信息系统
学生作业管理系统
社区论坛
在线课题系统
《数据库技术及应用》精品课程建设网站
职业中介信息管理系统
自来水收费管理系统
会员制漫画店(连锁)管理系统
基于CSCW的大学生就业平台
基于WEB方式的视频监控系统设计与开发
旅游网站
健康网站的设计与实现
新闻管理系统设计与实现
工会信息发布系统的设计与开发
模式识别与智能研究所网站
互联网计费系统
C#毕业生信息管理就业招聘系统
体育用品在线商店系统
网站群信息管理系统
员工绩效考核系统
学生档案信息管理C#
基于ASP.NET技术的动态IT培训网站的设计与实现
《软件测试技术》精品课程网站的建设与开发
网上二手房交易系统设计与实现

ASP131企业进销存管理系统
ASP C语言教学系统+论文
ASP(交友录)
asp+SQLServer网上书店系统+论文
ASP+sql精品在线试题库设计+论文
ASP+SQL图书管理系统+论文
<dir> asp+sql玉林旅游管理系统+论文+答辩PPT+开题报告+屏幕录相
ASPAC软件信息发布系统
ASPAC学生论坛
asp办公系统
ASP毕业设计选题管理系统(asp+sql)
asp毕业生信息管理系统源码+论文+开题+文献+外文翻译
ASP产品销售
ASP窗帘网站平台
200ASP电子商务系统
ASP电子政务档案管理系统+论文
ASP服装销售系统论文+答辩PPT+源代码+翻译+开题报告+任务书+实习报告)
20ASP关于奥运网站专题
ASP基于WEB的办公自动化管理系统+可执行源代码+论文
ASP家教信息管理系统
asp教师档案管理系统+论文
asp教师信息管理系统
ASP教学互动系统
asp酒店房间预约系统设计
ASP客户关系管理系统ASP+SQL+可执行文件+论文
asp旅游信息管理系统
ASP企业进销存管理系统ASP+SQL+可执行文件+论文
ASP企业物流管理
ASP企业物流平台的设计与实现 论文+源程序可执行+ASP+ACCESS数据库
ASP求职招聘网站设计(ASP)
ASP人才招聘系统
asp人力资源管理系统ASP+SQL+论文+源程序可执行
asp上网导航(论文+源码)
ASP售后服务管理系统
ASP同学录
ASP同学录asp+sql
ASP投票系统
asp图书出售图书发行系统
ASP图书管理系统
asp图书管理系统+论文+开题+PPT
asp图书管理系统+论文+开题+PPT.rar
ASP网络办公系统
ASP网络办公系统(源码加论文)
ASP网络购物系统
ASP网络硬盘文件资源管理系统(论文+代码+译
ASP网上购书
ASP网上购物系统
ASP网上考试系统
asp网上聊天室系统设计与开发带论文
ASP网上人才管理系统+可执行源代码+论文
ASP网上售房管理系统
ASP网上书店的
ASP网上贴吧系统
asp网上选课系统+论文
ASP物流系统设计
ASP物资管理系统的设计与实现+可执行源代码+数据库+论文
ASP校友录
ASP新闻管理系统
ASP新闻网程序+论文
asp信息查询系统
ASP学生管理
ASP学生信息管理系统
ASP药店信息管理系统
asp医药连锁店管理系统ASP+源代码+可执行程序+论文
ASP影片租赁系统
asp员工信息管理系统
ASP原创交友网设计
Asp原创网上书店
ASP原创信息管理系统
ASP在线exam
ASP在线花店系统
ASP在线教育系统
asp在线考试系统+论文
asp在线学习系统
asp自动化测试工具论文.net
ASP作业提交与批改系统(毕业论文+配套中英文对照翻译+源代码+执行结果)
原创教师信息管理系统

asp.net及.net
基于.net技术的校园新闻发布系统全套
asp.net ERP系统(毕业设计+论文
asp.net+sql人才网站
Asp.net2.0,C#)在线考勤系统研发+论文
ASP.NET报名管理信息系统
ASP.NET电子购物商城系统+论文
asp.net电子书城系统+论文
asp.net很好的美容院管理系统加论文
ASP.NET通用作业批改系统设计+论文
ASP.NET图书馆管理信息系统
ASP.NET网络考试系统.net
ASP.NET网上书店(源程序+论文+答辩PPT)
ASP.net校友录毕业设计+论文
asp.net学生成绩管理系统+论文
asp.net学生管理系统
asp.net在线考试统加论文
ASP.NET智能评教系统,内含论文智能教评
asp.net中图像的检索技术毕业设计(论文,源码,任务书,开题报告,答辩ppt)
net邮件收发系统的设计+论文
VB.net+SQL房地产评估系统
vb.net酒店管理系统+论文
VB.NET网吧计费系统软件
人事管理系统+论文+答辨PPT
复件(2)delphi列车时刻查询决策系统课程设计论文+源代码
复件delphi列车时刻查询决策系统课程设计论文+源代码
三层图书管理系统
商品销售管理系统(毕业设计)最新版下载
题库系统与试卷生成
java论坛管理系统,包括论文和程序
java图书管理系统毕业设计+源码
Java游戏设计打飞机程序+论文
java作业管理系统
java五子棋的开发
JAVA论坛管理数据库开发
JSP+SQL计算机等级考试查询系统
jsp仓储管理系统+论文
jsp操作系统课程教学网站的设计与实现论文+源代码
jsp高校学生考勤管理系统
jsp高校智能排课系统+论文
JSP教学管理系统
JSP考试管理系统
jsp网上购书系统源代码
jsp网上书店程序+论文
jsp网上书店系统
jsp物流中心仓储信息管理系统
jsp学生课绩管理系统+论文
JSP作业管理
教学管理系统
PHP+SQL公共课平时成绩查询系统
PHP教材管理系统+论文
PHP课程设计+论文
SQL数据库课程设计 学生选课
168VBAC房屋销售管理信息系统
dekphi贸易公司信息管理系统+论文
VB ATM自动银行+论文
VB+ACCESS高校题库管理系统附原代码+程序+1万字论文
VB+Access酒店客房管理系统(源码+论文).rar(3475
VB065IC卡管理系统001
VB班级管理系统vb+access源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt
VB本科毕业论文-工资管理系统毕业论文+源码
vb仓库管理系统(包括可执行程序 源码 开题报告 答辩稿)
VB超市管理 系统+论文
vb超市管理系统+论文
vb超市进销存管理系统vb+access源代码+可执行文件+论文+开题报稿+外文翻译+答辩ppt.rar(768
vb车辆管理系统vb+access源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt
vb地籍登记管理系统vb+access源代码+论文+开题报告+外文翻译+答辩ppt
vb电表管理系统vb+access源代码+可执行程序+论文
VB俄罗斯方块系统+论文
VB俄罗斯方块游戏课程设计
vb高速公路票据管理系统vb+access源代码+可执行文件+论文+开题报告+外文翻译+答辩ppt
VB工资管理系统
VB工资管理系统(论文+开题报告+源代码)
VB工资管理系统vb+access源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt
vb公交车查询系统vb+access源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt
VB计算机自动出卷系统vb版(含开题报告+外文翻译+源程序+可执行程序+论文正文+答辩ppt)
VB教师管理系统vb+access含源代码+可执行程序+论文+开题报告+外文翻译+答辩稿
vb教师管理系统vb+access含源代码+可执行程序+论文+开题报告+外文翻译+答辩稿(2)
VB教务管理系统vb+access源代码+论文+开题报告+外文翻译+答辩ppt
vb教学辅助系统VB+access源代码+可执行文件+论文
VB客房管理系统全套(带源码)
vb课程设计医药管理系统(VB+SQL)应要求源文件+代码+论文打包上传
vb库存管理系统(论文+开题报告+源代码)
VB库存管理系统2(论文+开题报告+源代码)
VB评语管理系统vb+access源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt
vb企业人事工资管理系统+论文
vb企业人事管理系统
vb企业人事管理信息系统+论文
VB人才管理系统
vb人事工资管理系统毕业设计(论文)
VB人事管理系统
vb人事管理系统(VB毕设成品)毕业论文
VB人事管理系统sql+论文
vb人事管理源程序+论文
vb人事资源管理系统+论文
vb设备管理系统+论文
vb试题库自动组卷系统
vb题库管理系统+论文
vb通讯录管理信息系统vb+access源代码+可执行程序+论文+开题报告+外文翻译
vb图书馆管理系统+论文
vb图书管理系统
vb图书管理系统(文档+源代码)
vb图书管理系统vb+access版论文+源代码+开题报告+外文翻译+答辩ppt
vb图书管理系统源代码论文
vb图书销售信息系统+论文
VB文档管理系统+论文
vb小区物业管理系统
vb校园网交换机节点管理系统+论文
vb学籍管理系统带论文
VB学生档案
vb学生档案管理系统
vb学生档案管理系统+论文
VB学生公寓管理系统
vb学生评语生成系统论文
VB学生信息管理系统
vb学生信息管理系统(VB+sql)+毕业论文2万字
vb学生信息管理系统(代码+论文+开题报告)
vb药品库房管理系统vb+access源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt
vb一个考试管理系统。带论文的
VB医药管理系统
vb音像制品出租及销售管理系统
VB员工管理系统
VB原创库存管理系统开题报告+外文翻译+论文正文+源代码+可执行程序
vb原创图书管理系统)毕业设计+论文
vb源代码加可执行文件加论文
vb智能排课系统+论文
vb中介管理系统vb+access源代码+论文+开题报告+外文翻译+答辩ppt
学生宿舍管理系统

VC++

C++ 003指纹识别系统
C++课程设计报告(人事管理系统)
VC++ 003指纹识别系统
VC++06全国天气信息管理系统
vc++24点游戏的开发和实现
VC++车辆调度
vc++航空检票系统+论文
vc++航空客运订票系统+论文
VC++基于校园网的学院教学质量监测评估系统
vc++简单几何图形的识别和编辑系统+论文
VC++经济管理出版社期刊书目信息管理系统
vc++局域网的数据包监听及数据分析毕业论文+源代码
VC++开发GIS项目程序+论文
vc++可视化图像处理系统+论文
vc++库存管理
vc++图书馆管理系统
vc++网上寻呼QICQ源代码(附带论文)
vc++象棋程序+论文
VC++学生成绩统计分析系统
vc++医药管理系统+论文
vc++用遗传算法解决车辆优化调度问题论文+源代码+任务书
vc++运动会成绩管理系统(源码+论文)
VC+ACCESS开发的酒店管理+论文
vc数据挖掘在客户关系管理中的
vc中国象棋软件(程序+源码+论文)下载
VC做的聊天室+论文
浏览器(论文+源码)
一个VC++做的手机话费参考程序,有设计报告

vfp现代物流企业管理系统+论文
vfp现代物流企业管理系统+论文
VF财务管理系统(论文+开题报告+源代码+答辩PPT)
vf仓库管理系统(论文+源文件)
VF地税局工资管理系统(论文+开题报告+答辩PPT+源代码+程序清单)
vf简单的酒店管理源码+文论
VF教职工信息管理毕业设计
vf教职工信息管理毕业设计+论文
vf路政管理系统(论文+开题报告+答辩PPT+源代码+程序清单)
VF企业人事档案管理系统全套(带源码)
vf图书管理系统(VFP)(包括程序文档)
VF系统的学生成绩管理系统+论文
vf职员信息系统+论文
vf做的学生管理系统+论文

ASP+ACCESS深水蓝文学网站
ASP+ACCESS文学网站
ASP+SQL美食网站
ASP人才招聘系统
delphi书店辅助进书系统
JSP028学生学籍管理系统
JSP科研处管理信息系统+论文
JSP学生学籍管理系统
JSP在线学习系统
my美食网站
php+mysql学生成绩查询
PHP学生成绩查询
vb数控加工技术教学素材资源库的构建
VB文档管理系统+论文
百瑞通公司网站
报名系统
多媒体课程答疑系统
高校固定资产管理系统
公司办公信息管理系统
恒华贸易有限公司网站
基于局域网的聊天室系统
科研项目网上申报管理系统
两个网站
企业电子投票系统
人才网内容管理系统
商品配送中心库存仿真软件设计
社区网络(含在线影院)
施甸县旅游咨询网
同校二手电子产品交易网
外观专利图像检索平台
网络实验教学网站
网上教学资源共享系统
小区门户网站
学科建设
学科建设系统
医疗器械公司网站客户服务系统设计
政府采购管理信息系统
中国节能环保科技网站

计算机论文
ASP动态网站建设论文.doc
java网络5子棋代码.doc
工商管理毕业论文
基于Web的网上评教系统.doc
计算机局域网组建与互连毕业设计论文 .doc
嵌入式系统开发要素的选择分析.doc
嵌入式系统在多点温度控制中的应用.doc
校园网络工程综合布线方案

人事管理系统
现代物流企业管理系统
企业数据信息管理系统
航空公司管理系统
成本费用计算系统
VCD租借管理系统
毕业生招聘信息的发布与管理系统
宾馆客房管理系统

《计算机专业英语》网上教学系统设计与实现
《软件工程》精品课程教学网站的设计与实现 ASP+SQL Sever2000
《数据库原理及应用技术》课程指导平台的开发
《新闻发布系统》
《信息论与编码》在线考试系统
3G的AKA协议中F1至F5的UE端的实现
3G的AKA协议中F1至F5的服务网络端实现
ASP.NET技术在网站开发设计中的研究与开发 ASP.NET+SQL Sever2000
BBS系统开发与帐户安全保护的实现
BS结构的城市酒店入住信息管理系统的设计
BS结构下的OA流程可视化的研究与实现
BS结构下的邮件系统设计开发
BS模式的计算机等级考试管理系统的设计与实现 ASP.NET+SQL Sever2000
C语言教学网站及网上考试系统的设计与实现 ASP.NET+SQL Sever2000
C语言试题生成与考试系统
Delaunay算法的实现与应用
Excel条件格式化工具的设计与实现
FTP客户端的设计与实现
FTP客户端设计与开发
多种排序算法动态演示软件的设计和开发
基于JSP学生成绩管理系统软件的开发
清除履历表、日志表、月购买额
多语种视频音频播放器的设计与实现
创建会员信息文件
Win32平台下的PE文件病毒的研究及实现
一种多商家网络商店的设计与实现
权限管理模块
积分添加和通票回收
网上选课系统的设计与实现
泡泡堂网络游戏的设计与实现
权限及公共模块设计与开发
某企业信息管理系统的设计与实现
H2003032045程富超_一种远程管理Linux系统工具的设计与实现
多语种网络硬盘系统的设计
系统框架设计与开发
小型证券术语解释及翻译系统的设计与开发
权限管理与日志记录模块的设计与开发
考试管理及成绩查询模块的设计与开发
OA子系统的设计与开发
题库及试卷管理模块的设计与开发
考试监控及阅卷模块的设计与开发
某店积分更新记录管理
教务平台—学籍管理模块开发与设计
H2003032197王蕾-基于Java的两个通用安全模块的设计与实现
销售情况,会员卡再发行数据生成
教务信息管理系统的设计与实现
高校学生宿舍管理系统的设计与实现
网络商店销售管理系统的设计与实现
商品分类,交易状况统计
IA32逻辑功能仿真实现
Iptables图形管理工具的设计与实现
Ipv6环境下FTP系统的设计与实现 Java+SQL Server2000
IT产品网上物流管理信息系统的设计与实现
J2ME手机游戏的开发-Beckham Goal
Java打飞机游戏设计
Java多线程与线程安全实践-基于Http协议的断点续传
JAVA网络通信系统的研究与开发 JAVA+SQL Sever2000
JSP实现的简单旅游管理系统的设计
KASUMI算法的研究与VC实现
体育城场地预约系统的设计与实现
Linux环境下的密文聊天系统的设计与实现
Linux平台下的聊天软件的设计与开发
Linux下的简单网络管理控制系统的设计与开发
Linux下的网络层加密解密的实现
MBA顾问网的研究与开发 ASP+SQL Sever2000
MD5算法的研究与实现-数据存储加密
RSA公钥密码算法的一种快速实现
RSA可视化算法程序的实现与研究
RSA密码体制的实现.
Scheme解释程序的实现.tgz
VBA在培训考试中的应用研究与实现 VBA+Access 2003
vCalendar的跨平台系统的设计
VFP试题库管理系统的设计与实现 ASP.NET+SQL Sever2000
Web Mail收发系统设计与开发
Web的入侵防御系统的设计与实现
Web音乐搜索软件的设计与实现
Windows简单防火墙设计与实现
Windows进程管理工具设计与实现
Windows系统辅助管理程序设计与开发
Windows下盗取帐号密码的木马程序的设计
WML信息查询与后端信息发布系统实现——WML信息查询设计
Word试题库工具插件的设计
WORD文档分类管理插件的设计与实现
XX职业中学图书管理系统的设计
班级学生管理系统的设计与开发
办公自动化管理系统的设计与实现
办公自动化系统的设计与实现 ASP.NET2.0+SQL Sever2000
本地监听与远程端口扫描
毕业论文管理系统的设计
毕业设计(论文)资源网站的开发 ASP.NET+SQL Sever2000
毕业设计论文打印系统 ASP.NET+SQL Sever2000
前台WEB端的研究与开发 ASP.NET+SQL Sever2000
毕业设计文档相似度判别算法的研究与实现 ASP.NET+SQL Sever2000
毕业设计选题系统的设计与实现 ASP.NET+SQL Sever2000
并行接口器件功能演示的可视化设计 学位论文
博客网站的设计与实现 ASP.NET+SQL Sever2000
博客网站的研究与实现 JSP+SQL Server 2000
猜数游戏的设计与开发
仓库货物管理系统的设计与实现
长途汽车信息管理系统的设计与实现
超市收费系统的设计与实现
大随机数生成器算法的研究与实现
大型中断接口器件的功能演示的可视化设计
大学生德育工程思想道德评价系统的开发与实现 ASP+SQL Sever2000
大学英语疑难解答系统的设计与实现 ASP+SQL Sever2000
代理服务器测试程序的设计与实现
档案管理系统的设计与实现
迪迪毛绒玩具厂网站设计与实现 ASP.NET+ Oracle 9i
第二代木马的研究与实现.
基于.NET的城市公交查询系统的设计与实现
基于.NET的电子商务网站的设计 ASP.NET+SQL Server 2000
基于.NET的房屋销售信息管理系统的设计与实现
基于.NET的工资绩效管理系统的开发
基于.NET的公务员考试模拟系统的设计
基于.NET的火车联网售票系统的设计
基于.NET的驾校理论考试模拟系统
基于.NET的酒店预订信息管理系统的设计
基于.NET的门诊药品查询系统的设计与实现
基于.net的内部邮件系统实现
基于.NET的企业内部办公系统的设计与实现 ASP.NET+SQL Sever2000
基于.NET的视频点播系统的设计与实现 ASP.NET+SQL Sever2000
基于.NET的数据共享网站的设计
基于.NET的网上购物系统的设计与实现
基于.NET的网上售书系统的设计与实现
基于.NET的网上图书销售系统的设计与实现
基于.net企业订单管理系统的开发
基于Ajax+Lucene构建搜索引擎的设计和实现
基于Apriori算法的关联规则挖掘系统的设计与实现
基于ASP.NET的班级风采网站的设计
基于ASP.NET的公司网站的设计与实现
基于ASP.NET的企业网站的研究与开发 ASP.NET+SQL Sever2000
基于ASP.NET的网上书店的设计与实现 ASP.NET+SQL Sever2000
基于ASP.NET的校友录管理系统的研究与实现 ASP.NET+SQL Sever2000
基于ASP.NET的学生成绩报表系统的设计与实现 ASP.NET+SQL Sever2000
基于ASP.NET的学生成绩管理系统的设计与实现 ASP.NET+SQL Sever2000
基于ASP.NET的学生成绩合成系统的设计与实现 ASP.NET+SQL Sever2000
基于ASP.NET简易博客网站的设计与实现
基于ASP.NET教学辅助系统设计与实现
基于ASP的笔记本销售网站的设计与实现
基于ASP的博客网站设计与实现 ASP+Access
基于ASP的反垃圾邮件管理系统的设计
基于ASP的房屋租售信息管理系统的设计
基于ASP的公交查询系统的设计与实现
基于ASP的淮工学生购物网的设计与实现 ASP+SQL Sever2000
基于ASP的旅游网站的设计与实现
基于ASP的某学校校园BBS的设计与实现
基于ASP的企业人事管理系统的设计与实现
基于asp的搜索引擎开发
基于ASP的网络聊天室的设计和实现
基于ASP的学生信息管理系统的设计与实现
基于ASP技术的电子产品销售网站的设计与实现
基于ASP网站的安全性研究与实现
基于BS的工艺品展示系统的设计与实现
基于BS的计算机等级考试系统的设计与实现
基于BS的家教交流平台的实现
基于BS的人才交流网站的设计与实现
基于BS的图书销售管理系统的设计与实现
基于BS方式的即时通讯软件的设计与实现
基于BS结构的仓储物流管理系统
基于BS结构的二手交易系统的设计与实现
基于BS结构的房屋租售管理系统的实现
基于BS结构的工厂设备管理系统的设计与开发
基于BS结构的工艺品销售系统的实现
基于BS结构的旅游网站的开发与设计
基于BS结构的实验室预约模型系统
基于BS结构的学生交流论坛的设计与开发
基于BS结构的学生在线选课系统的实现
基于BS结构的在线学籍管理系统
基于BS模式的网上销售系统的研究与实现 ASP+Access
基于BS模式的中小企业人事管理系统的设计与实现
基于C#的文档加密器的实现
基于C#端口扫描器的实现
基于cs的电子邮件简单收发系统设计与实现
基于cs的家庭财务管理系统的设计与实现
基于CS结构的个人理财系统的开发
基于CS结构的企业人事管理系统的设计与实现
基于CS结构的医院管理系统的设计与实现
基于Delphi 的物资管理系统的设计与实现 Delphi +SQL server 2000
基于Delphi的超市销售系统的研究与实现 Delphi +SQL server 2000
基于Delphi的公司人事管理系统的设计与实现
基于Delphi的进货渠道管理系统的设计与实现 Delphi +SQL server 2000
基于Delphi的酒店管理系统的设计与实现 Delphi +SQL server 2000
基于Delphi的排课系统的设计与实现 Delphi +SQL server 2000
基于Delphi的企业人事工资管理系统 Delphi +SQL server 2000
基于Delphi的企业销售管理系统 ASP.NET+SQL Sever2000
基于DELPHI的企业员工培训管理系统的设计与实现 Delphi +SQL server 2000
基于Delphi的图书管理系统的设计与实现 Delphi +SQL server 2000
基于Delphi的小型超市进存销管理系统
基于delphi的学生成绩管理系统的设计与实现 Delphi +SQL server 2000
基于Delphi的医药管理系统的设计和实现 Delphi7.0+SQL Sever2000
基于JAVA CS远程监控系统软件的实现
基于Java ME无线网络移动端的俄罗斯方块游戏的实现(最终修改版)
基于Java的五子棋游戏的设计
基于Java的在线购物系统的设计与实现
基于Java五人制足球游戏的研究与开发
基于JSP的毕业设计选题系统的设计与实现
基于JSP的房产中介系统的设计与实现
基于JSP的计算机网络在线测试系统的设计与实现 JSP+SQL Server
基于JSP的网上购物系统的设计与实现
基于JSP技术的猎头公司管理软件的设计和实现——内部事务部分
基于Web的文档管理系统的设计与实现
基于WEB的小型公司人事管理系统的设计
基于Web的新闻发布系统(答辩未通过)
基于WEB的学生电子作业提交系统 PHP+SQL Sever2000
基于web的学位论文管理系统的设计与实现 ASP.NET+SQL Sever2000
基于WEB的烟草销售系统的设计与实现 JSP+SQL Server 2000
基于web的远程教育系统的研究与开发 ASP.NET+SQL Sever2000
基于Web的在线考试系统的设计与实现 ASP+SQL Sever2000
基于Web的招投标系统的设计与实现
基于WEB技术的同学录系统的设计与实现 ASP.NET+SQL Sever2000
基于Web模式的物流管理信息系统的设计与实现 ASP+SQL Sever2000
基于Web学生成绩处理系统的设计与实现 ASP+SQL Sever2000

网上办公系统——公文流程管理设计与实现
网上报名及在线考试系统的设计与实现
网上超市系统管理软件的设计与实现 ASP.NET+Access
网上订餐系统的设计与实现
网上二手商品交易管理系统的设计与实现
网上辅助答疑系统的设计与实现 ASP.NET+SQL Sever2000
网上购物系统的设计与实现
网上购物系统的设计与实现 PHP5.0+APACHE+MYSQL
网上家电销售管理系统的设计与实现
网上教材管理系统的设计与实现
网上教师测评系统 JSP+SQL Server
网上军事论坛的设计与实现
网上考试及评析系统的设计与实现
网上考试系统的设计与实现 ASP.NET+SQL Sever2000
网上课件管理系统的设计与实现
网上拍卖系统的设计与实现
网上求职与招聘系统的设计与实现
网上人才招聘系统
网上商店系统的设计与实现 ASP+Access
网上商品销售系统的设计与实现
网上书店的设计与实现
网上书店——管理模块的设计与实现
网上书店——在线购物及统计分析的设计与实现
网上图书订阅系统的设计
网上图书预约系统的设计
网上鲜花销售系统的设计
网上招聘系统 ASP.NET+SQL Sever2000

销售供应链管理系统的设计与开发
销售管理系统 ASP2.0+SQL2000
小区物业管理系统 Delphi +SQL server 2000
小区物业管理系统的设计与实现 ASP.NET+SQL Sever2000
小区物业管理系统的设计与实现 JSP+SQL Server 2000
小型电脑行业销售管理的设计与实现 ASP+SQL Sever2000
小型酒店管理系统的设计

㈥ MFC界面上实现MD5算法

界面是界面,算法是算法。各司其职。

㈦ A*算法应用,大家给点介绍,做课程设计

维基网络有很多的,大陆访问不了,可以设置个香港代理。

SHA 家族
[编辑首段]维基网络,自由的网络全书
跳转到: 导航, 搜寻
安全散列演演算法能计算出一个数位讯息所对应到的,长度固定的字串(又称讯息摘要)。且若输入的讯息不同,它们对应到不同字串的机率很高;而 SHA 是FIPS所认证的五种安全杂凑演演算法。这些演演算法之所以称作「安全」是基於以下两点(根据官方标准的描述):「1)由讯息摘要反推原输入讯息,从计算理论上来说是很困难的。2)想要找到两组不同的讯息对应到相同的讯息摘要,从计算理论上来说也是很困难的。任何对输入讯息的变动,都有很高的机率导致其产生的讯息摘要迥异。」

SHA 家族的五个演演算法,分别是SHA-1, SHA-224, SHA-256, SHA-384, 和 SHA-512,由美国国家安全局 (NSA) 所设计,并由美国国家标准与技术研究院(NIST) 发布;是美国的政府标准。后四者有时并称为SHA-2。SHA-1 在许多安全协定中广为使用,包括 TLS 和 SSL、 PGP、SSH、S/MIME 和 IPsec,曾被视为是 MD5(更早之前被广为使用的杂凑函数)的后继者。但 SHA-1 的安全性如今被密码学家严重质疑;虽然至今尚未出现对 SHA-2 有效的攻击,它的演演算法跟 SHA-1 基本上仍然相似;因此有些人开始发展其他替代的杂凑演演算法。缘於最近对 SHA-1 的种种攻击发表,「美国国家标准与技术研究院(NIST)开始设法经由公开竞争管道(类似高级加密标准AES的发展经过),发展一个或多个新的杂凑演演算法。」

目录 [隐藏]
1 SHA-0 和 SHA-1
1.1 SHA-0 的破解
1.2 SHA-1 的破解
2 SHA-2
3 SHA 所定义的长度
4 SHAd
5 应用
6 SHA-1 演演算法
7 SHA-2 演演算法
8 参见
9 参考资料
10 外部链结

[编辑] SHA-0 和 SHA-1

SHA-1 压缩演演算法中的一个回圈。A, B, C, D 和 E 是这个state中的 32 位元文字;F 是会变化的非线性函数;<<<n 代表bit向左循环移动n个位置。n因操作而异。田代表molo 232之下的加法,Kt 是一个常数。最初载明的演演算法於 1993年发布,称做安全杂凑标准 (Secure Hash Standard),FIPS PUB 180。这个版本现在常被称为 SHA-0。它在发布之后很快就被 NSA 撤回,并且由 1995年发布的修订版本 FIPS PUB 180-1 (通常称为 SHA-1) 取代。SHA-1 和 SHA-0 的演演算法只在压缩函数的讯息转换部份差了一个位元的循环位移。根据 NSA 的说法,它修正了一个在原始演演算法中会降低密码安全性的错误。然而 NSA 并没有提供任何进一步的解释或证明该错误已被修正。而后 SHA-0 和 SHA-1 的弱点相继被攻破,SHA-1 似乎是显得比 SHA-0 有抵抗性,这多少证实了 NSA 当初修正演演算法以增进安全性的声明。

SHA-0 和 SHA-1 可将一个最大 264 位元的讯息,转换成一串 160 位元的讯息摘要;其设计原理相似於 MIT 教授 Ronald L. Rivest 所设计的密码学杂凑演演算法 MD4 和 MD5。

[编辑] SHA-0 的破解
在 CRYPTO 98 上,两位法国研究者提出一种对 SHA-0 的攻击方式 (Chabaud and Joux, 1998): 在 261的计算复杂度之内,就可以发现一次碰撞(即两个不同的讯息对应到相同的讯息摘要);这个数字小於 280 ,也就是说,其安全性不到一个理想的杂凑函数抵抗攻击所应具备的计算复杂度。

2004年时,Biham 和 Chen 也发现了 SHA-0 的近似碰撞 — 两个讯息可以杂凑出几乎相同的数值;其中 162 位元中有 142 位元相同。他们也发现了 SHA-0 的完整碰撞(相对於近似碰撞),将本来需要 80 次方的复杂度降低到 62 次方。

2004年8月12日,Joux, Carribault, Lemuet 和 Jalby 宣布找到 SHA-0 演演算法的完整碰撞的方法,这是归纳 Chabaud 和 Joux 的攻击所完成的结果。发现一个完整碰撞只需要 251的计算复杂度。他们使用的是一台有 256 颗 Itanium2 处理器的超级电脑,约耗 80,000 CPU 工时 [1]。

2004年8月17日,在 CRYPTO 2004 的 Rump 会议上,王小云, 冯登国 (Feng), 来学嘉 (Lai), 和於红波 (Yu) 宣布了攻击 MD5、SHA-0 和其他杂凑函数的初步结果。他们攻击 SHA-0 的计算复杂度是 240,这意谓的他们的攻击成果比 Joux 还有其他人所做的更好。请参见 MD5 安全性。2005 年二月,王小云和殷益群、於红波再度发表了对 SHA-0 破密的演演算法,可在 239 的计算复杂度内就找到碰撞。

[编辑] SHA-1 的破解
鉴於 SHA-0 的破密成果,专家们建议那些计画利用 SHA-1 实作密码系统的人们也应重新考虑。2004 年 CRYPTO 会议结果公布之后,NIST 即宣布他们将逐渐减少使用 SHA-1,改以 SHA-2 取而代之。

2005年,Rijmen 和 Oswald 发表了对 SHA-1 较弱版本(53次的加密回圈而非80次)的攻击:在 280 的计算复杂度之内找到碰撞。

2005年二月,王小云、殷益群及於红波发表了对完整版 SHA-1 的攻击,只需少於 269 的计算复杂度,就能找到一组碰撞。(利用暴力搜寻法找到碰撞需要 280 的计算复杂度。)

这篇论文的作者们写道;「我们的破密分析是以对付 SHA-0 的差分攻击、近似碰撞、多区块碰撞技术、以及从 MD5 演演算法中寻找碰撞的讯息更改技术为基础。没有这些强力的分析工具,SHA-1 就无法破解。」此外,作者还展示了一次对 58 次加密回圈 SHA-1 的破密,在 233 个单位操作内就找到一组碰撞。完整攻击方法的论文发表在 2005 年八月的 CRYPTO 会议中。

殷益群在一次面谈中如此陈述:「大致上来说,我们找到了两个弱点:其一是前置处理不够复杂;其二是前 20 个回圈中的某些数学运算会造成不可预期的安全性问题。」

2005 年八月 17 的 CRYPTO 会议尾声中王小云、姚期智、姚储枫再度发表更有效率的 SHA-1 攻击法,能在 263 个计算复杂度内找到碰撞。

在密码学的学术理论中,任何攻击方式,其计算复杂度若少於暴力搜寻法所需要的计算复杂度,就能被视为针对该密码系统的一种破密法;这并不表示该破密法已经可以进入实际应用的阶段。

就应用层面的考量而言,一种新的破密法出现,暗示著将来可能会出现更有效率、足以实用的改良版本。虽然这些实用的破密法版本根本还没诞生,但确有必要发展更强的杂凑演演算法来取代旧的演演算法。在「碰撞」攻击法之外,另有一种反译攻击法,就是由杂凑出的字串反推原本的讯息;反译攻击的严重性更在碰撞攻击之上。 在许多会应用到密码杂凑的情境(如用户密码的存放、文件的数位签章等)中,碰撞攻击的影响并不是很大。举例来说,一个攻击者可能不会只想要伪造一份一模一样的文件,而会想改造原来的文件,再附上合法的签章,来愚弄持有私密金钥的验证者。另一方面,如果可以从密文中反推未加密前的使用者密码,攻击者就能利用得到的密码登入其他使用者的帐户,而这种事在密码系统中是不能被允许的。但若存在反译攻击,只要能得到指定使用者密码杂凑过后的字串(通常存在影档中,而且可能不会透露原密码资讯),就有可能得到该使用者的密码。

2006 年的 CRYPTO 会议上,Christian Rechberger 和 Christophe De Cannière 宣布他们能在容许攻击者决定部分原讯息的条件之下,找到 SHA-1 的一个碰撞。

[编辑] SHA-2

SHA-2 的第t个加密回圈。图中的深蓝色方块是事先定义好的非线性函数。ABCDEFGH一开始分别是八个初始值,Kt是第t个金钥,Wt是本区块产生第t个word。原讯息被切成固定长度的区块,对每一个区块,产生n个word(n视演演算法而定),透过重复运作回圈n次对ABCDEFGH这八个工作区段循环加密。最后一次回圈所产生的八段字串合起来即是此区块对应到的杂凑字串。若原讯息包含数个区块,则最后还要将这些区块产生的杂凑字串加以混合才能产生最后的杂凑字串。NIST 发布了三个额外的 SHA 变体,这三个函数都将讯息对应到更长的讯息摘要。以它们的摘要长度 (以位元计算) 加在原名后面来命名:SHA-256,SHA-384 和 SHA-512。它们发布於 2001年的 FIPS PUB 180-2 草稿中,随即通过审查和评论。包含 SHA-1 的 FIPS PUB 180-2,於 2002年以官方标准发布。2004年2月,发布了一次 FIPS PUB 180-2 的变更通知,加入了一个额外的变种 "SHA-224",这是为了符合双金钥 3DES 所需的金钥长度而定义。

SHA-256 和 SHA-512 是很新的杂凑函数,前者以定义一个word为32位元,后者则定义一个word为64位元。它们分别使用了不同的偏移量,或用不同的常数,然而,实际上二者结构是相同的,只在回圈执行的次数上有所差异。 SHA-224 以及 SHA-384 则是前述二种杂凑函数的截短版,利用不同的初始值做计算。

这些新的杂凑函数并没有接受像 SHA-1 一样的公众密码社群做详细的检验,所以它们的密码安全性还不被大家广泛的信任。Gilbert 和 Handschuh (2003) 曾对这些新变种作过一些研究,声称他们没有弱点。

[编辑] SHA 所定义的长度
下表中的中继杂凑值(internal state)表示对每个资料区块压缩杂凑过后的中继值(internal hash sum)。详情请参见Merkle-Damgård construction。

演演算法 输出杂凑值长度 (bits) 中继杂凑值长度 (bits) 资料区块长度 (bits) 最大输入讯息长度 (bits) 一个Word长度 (bits) 回圈次数 使用到的运运算元 碰撞攻击
SHA-0 160 160 512 264 − 1 32 80 +,and,or,xor,rotl 是
SHA-1 160 160 512 264 − 1 32 80 +,and,or,xor,rotl 存在263 的攻击
SHA-256/224 256/224 256 512 264 − 1 32 64 +,and,or,xor,shr,rotr 尚未出现
SHA-512/384 512/384 512 1024 2128 − 1 64 80 +,and,or,xor,shr,rotr 尚未出现

[编辑] SHAd
SHAd 函数是一个简单的相同 SHA 函数的重述:

SHAd-256(m)=SHA-256(SHA-256(m))。它会克服有关延伸长度攻击的问题。

[编辑] 应用
SHA-1, SHA-224, SHA-256, SHA-384 和 SHA-512 都被需要安全杂凑演演算法的美国联邦政府所应用,他们也使用其他的密码演演算法和协定来保护敏感的未保密资料。FIPS PUB 180-1 也鼓励私人或商业组织使用 SHA-1 加密。Fritz-chip 将很可能使用 SHA-1 杂凑函数来实现个人电脑上的数位版权管理。

首先推动安全杂凑演演算法出版的是已合并的数位签章标准。

SHA 杂凑函数已被做为 SHACAL 分组密码演演算法的基础。

[编辑] SHA-1 演演算法
以下是 SHA-1 演演算法的虚拟码:

Note: All variables are unsigned 32 bits and wrap molo 232 when calculating

Initialize variables:
h0 := 0x67452301
h1 := 0xEFCDAB89
h2 := 0x98BADCFE
h3 := 0x10325476
h4 := 0xC3D2E1F0

Pre-processing:
append the bit '1' to the message
append k bits '0', where k is the minimum number >= 0 such that the resulting message
length (in bits) is congruent to 448 (mod 512)
append length of message (before pre-processing), in bits, as 64-bit big-endian integer

Process the message in successive 512-bit chunks:
break message into 512-bit chunks
for each chunk
break chunk into sixteen 32-bit big-endian words w[i], 0 ≤ i ≤ 15

Extend the sixteen 32-bit words into eighty 32-bit words:
for i from 16 to 79
w[i] := (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) leftrotate 1

Initialize hash value for this chunk:
a := h0
b := h1
c := h2
d := h3
e := h4

Main loop:
for i from 0 to 79
if 0 ≤ i ≤ 19 then
f := (b and c) or ((not b) and d)
k := 0x5A827999
else if 20 ≤ i ≤ 39
f := b xor c xor d
k := 0x6ED9EBA1
else if 40 ≤ i ≤ 59
f := (b and c) or (b and d) or (c and d)
k := 0x8F1BBCDC
else if 60 ≤ i ≤ 79
f := b xor c xor d
k := 0xCA62C1D6

temp := (a leftrotate 5) + f + e + k + w[i]
e := d
d := c
c := b leftrotate 30
b := a
a := temp

Add this chunk's hash to result so far:
h0 := h0 + a
h1 := h1 + b
h2 := h2 + c
h3 := h3 + d
h4 := h4 + e

Proce the final hash value (big-endian):
digest = hash = h0 append h1 append h2 append h3 append h4
上述关於 f 运算式列於 FIPS PUB 180-1 中 , 以下替代运算式也许也能在主要回圈里计算 f :

(0 ≤ i ≤ 19): f := d xor (b and (c xor d)) (alternative)

(40 ≤ i ≤ 59): f := (b and c) or (d and (b or c)) (alternative 1)
(40 ≤ i ≤ 59): f := (b and c) or (d and (b xor c)) (alternative 2)
(40 ≤ i ≤ 59): f := (b and c) + (d and (b xor c)) (alternative 3)

[编辑] SHA-2 演演算法
以下是SHA-256 演演算法的虚拟码。注意,64个word w[16..63]中的位元比起 SHA-1 演演算法,混合的程度大幅提升。

Note: All variables are unsigned 32 bits and wrap molo 232 when calculating

Initialize variables
(first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
h0 := 0x6a09e667
h1 := 0xbb67ae85
h2 := 0x3c6ef372
h3 := 0xa54ff53a
h4 := 0x510e527f
h5 := 0x9b05688c
h6 := 0x1f83d9ab
h7 := 0x5be0cd19

Initialize table of round constants
(first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311):
k[0..63] :=
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2

Pre-processing:
append the bit '1' to the message
append k bits '0', where k is the minimum number >= 0 such that the resulting message
length (in bits) is congruent to 448 (mod 512)
append length of message (before pre-processing), in bits, as 64-bit big-endian integer

Process the message in successive 512-bit chunks:
break message into 512-bit chunks
for each chunk
break chunk into sixteen 32-bit big-endian words w[0..15]

Extend the sixteen 32-bit words into sixty-four 32-bit words:
for i from 16 to 63
s0 := (w[i-15] rightrotate 7) xor (w[i-15] rightrotate 18) xor (w[i-15] rightshift 3)
s1 := (w[i-2] rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2] rightshift 10)
w[i] := w[i-16] + s0 + w[i-7] + s1

Initialize hash value for this chunk:
a := h0
b := h1
c := h2
d := h3
e := h4
f := h5
g := h6
h := h7

Main loop:
for i from 0 to 63
s0 := (a rightrotate 2) xor (a rightrotate 13) xor (a rightrotate 22)
maj := (a and b) xor (a and c) xor (b and c)
t2 := s0 + maj
s1 := (e rightrotate 6) xor (e rightrotate 11) xor (e rightrotate 25)
ch := (e and f) xor ((not e) and g)
t1 := h + s1 + ch + k[i] + w[i]

h := g
g := f
f := e
e := d + t1
d := c
c := b
b := a
a := t1 + t2

Add this chunk's hash to result so far:
h0 := h0 + a
h1 := h1 + b
h2 := h2 + c
h3 := h3 + d
h4 := h4 + e
h5 := h5 + f
h6 := h6 + g
h7 := h7 + h

Proce the final hash value (big-endian):
digest = hash = h0 append h1 append h2 append h3 append h4 append h5 append h6 append h7
其中 ch 函数及 maj 函数可利用前述 SHA-1 的优化方式改写。

SHA-224 和 SHA-256 基本上是相同的, 除了:

h0 到 h7 的初始值不同,以及
SHA-224 输出时截掉 h7 的函数值。
SHA-512 和 SHA-256 的结构相同,但:

SHA-512 所有的数字都是64位元,
SHA-512 执行80次加密回圈而非64次,
SHA-512 初始值和常数拉长成64位元,以及
二者位元的偏移量和循环位移量不同。
SHA-384 和 SHA-512 基本上是相同的,除了:

h0 到 h7 的初始值不同,以及
SHA-384 输出时截掉 h6 和 h7 的函数值。

㈧ java课程设计

import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class Example10_6
{ public static void main(String args[])
{ char a[]=
"今晚10点发起总攻".toCharArray();
int n=0,m=0;
try{ File f=new File("secret.txt");
for(int i=0;i<a.length;i++)
{ a[i]=(char)(a[i]^'R');
}
FileWriter out=new FileWriter(f);
out.write(a,0,a.length);
out.close();
FileReader in=new FileReader(f);
char tom[]=new char[10];
System.out.println("密文:");
while((n=in.read(tom,0,10))!=-1)
{ String s=new String (tom,0,n);
System.out.print(s);
}
in.close();
in=new FileReader(f);
System.out.println("");
System.out.println("明文:");
while((n=in.read(tom,0,10))!=-1)
{ for(int i=0;i<n;i++)
{ tom[i]=(char)(tom[i]^'R');
}
String s=new String (tom,0,n);
System.out.print(s);
}
in.close();
}
catch(IOException e)
{ System.out.println("File read Error");
}
}
}

-------------------------
拿着这个改改就行了吧,在加点什么保存的。
应该是简单的东西?

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919