密码学实验全部题目+完整代码:Hash算法MD5,DES-CBC,基于口令的加密,CBC-MAC,数字信封, 数字签名,DH.zip


密码学实验(全部题目+完整代码:Hash算法MD5,DES-CBC,基于口令的加密,CBC-MAC,数字信封, 数字签名,DH)
资源截图
代码片段和文件信息
#include 
#include 
#include 
#include “NN.C“
#include “RSA.C“
#include “DIGIT.C“
#include “MD2C.C“
#include “MD5C.C“
#include “DESC.C“
#include “PRIME.C“
#include “R_STDLIB.C“
#include “R_RANDOM.C“
#include “R_KEYGEN.C“
#include “R_ENHANC.C“
#include “R_ENCODE.C“
#include “R_DH.C“
// 以十六进制形式显示output中的内容
void shows(char *text unsigned char *output unsigned int len){
printf(“%s: “ text);
for (unsigned int i = 0; i printf(“%x“ output[i]);
printf(“
“);
}
//给R_DH_PARAMS的成员分配内存空间
void Init_DH_Params(R_DH_PARAMS *params unsigned int bits){
params->prime = new unsigned char[DH_PRIME_LEN(bits)];
params->generator = new unsigned char[DH_PRIME_LEN(bits)];
}

//销毁分配给R_DH_PARAMS的成员的内存空间
void Destory_DH_Params(R_DH_PARAMS *params){
delete[]params->prime;
delete[]params->generator;
}
// 产生DH系统参数
int create_DH_params(R_DH_PARAMS *params int prime_len int subprime_len R_RANDOM_STRUCT *randomStruct){
// 为DH系统参数成员分配空间
Init_DH_Params(params prime_len);

// 产生DH系统参数
int ret = R_GenerateDHParams(params prime_len subprime_len randomStruct);

if (RE_MODULUS_LEN == ret){
printf(“prime length invalid 
“); 
return 0;
}
else if (RE_NEED_RANDOM == ret){
printf(“randomStruct is not seeded 
“); 
return 0;
}
else if (RE_DATA == ret){
printf(“prime bits out of range
“); 
return 0;
}
return 1;
}
// 产生RSA密钥
int create_RSAkey(char *user R_RSA_PUBLIC_KEY *publicKey R_RSA_PRIVATE_KEY *privateKey unsigned int modul_bitsint useFermat4 R_RANDOM_STRUCT *randomStruct){
R_RSA_PROTO_KEY   protoKey;
int flag;

protoKey.bits = modul_bits;           //设定模数长度
protoKey.useFermat4 = useFermat4;      //设定e
flag = R_GeneratePEMKeys(publicKey privateKey &protoKey randomStruct);   // 产生RSA密钥
if (RE_MODULUS_LEN == flag){
printf(“%s: modulus length invalid
“ user); 
return 0;
}
else if (RE_NEED_RANDOM == flag){
printf(“%s: randomStruct is not seeded
“ user); 
return 0;
}
return 1;
}
// 产生用户的公开值、秘密值
int setup_DH_agreement(char *user unsigned char *publicValue unsigned char *privateValueint privateValueLEN R_DH_PARAMS *paramsR_RANDOM_STRUCT *randomStruct){
if (RE_NEED_RANDOM == R_SetupDHAgreement(publicValue privateValue privateValueLEN params randomStruct)){
printf(“%s: randomStruct is not seeded 
“ user); 
return 0;
}
return 1;
}
// 产生共享密钥
int create_agreementkey(unsigned char *Key unsigned char *otherspublicValue unsigned char *privateValue int publicValueLenR_DH_PARAMS *params){
if (RE_DATA == R_ComputeDHAgreedKey(Key otherspublicValue privateValue publicValueLen params))
return 0;
return 1;
}

// 对公开值计算签名
int  sign(char *user unsigned char *publicValue int publicValueLenunsigned char *signature unsigned int *signatureLenR_RSA_PRIVATE_KEY *privateKey){
R_SIGNATURE_CTX context;

if (RE_DIGEST_ALGORITHM == R_SignInit(&context DA_MD5)){
printf(“%s: digestA

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-05-31 11:01  01_实验题目
     目录           0  2019-05-31 10:51  01_实验题目ConsoleApplication3
     文件     2621440  2019-05-31 10:51  01_实验题目ConsoleApplication3ConsoleApplication3.sdf
     文件        1003  2019-05-31 10:51  01_实验题目ConsoleApplication3ConsoleApplication3.sln
     目录           0  2019-05-31 10:51  01_实验题目ConsoleApplication3ConsoleApplication3
     文件        8045  2019-05-31 10:51  01_实验题目ConsoleApplication3ConsoleApplication37.cpp
     文件      149597  2019-05-31 10:51  01_实验题目ConsoleApplication3ConsoleApplication37.exe
     文件      115175  2019-05-31 10:51  01_实验题目ConsoleApplication3ConsoleApplication37.o
     文件        4093  2019-05-31 10:51  01_实验题目ConsoleApplication3ConsoleApplication3ConsoleApplication3.vcxproj
     文件         942  2019-05-31 10:51  01_实验题目ConsoleApplication3ConsoleApplication3ConsoleApplication3.vcxproj.filters
     目录           0  2019-05-31 11:00  01_实验题目实验1 - Hash算法MD5
     文件        1149  1994-03-21 10:20  01_实验题目实验1 - Hash算法MD5GLOBAL.H
     目录           0  2019-05-31 10:52  01_实验题目实验1 - Hash算法MD5Hash_MD5
     目录           0  2019-05-31 10:53  01_实验题目实验1 - Hash算法MD5Hash_MD5Debug
     文件      258146  2019-05-31 10:52  01_实验题目实验1 - Hash算法MD5Hash_MD5DebugHash_MD5.exe
     文件      369332  2019-05-31 10:52  01_实验题目实验1 - Hash算法MD5Hash_MD5DebugHash_MD5.ilk
     文件     1999512  2019-05-31 10:53  01_实验题目实验1 - Hash算法MD5Hash_MD5DebugHash_MD5.pch
     文件      590848  2019-05-31 10:52  01_实验题目实验1 - Hash算法MD5Hash_MD5DebugHash_MD5.pdb
     文件       23214  2019-05-31 10:52  01_实验题目实验1 - Hash算法MD5Hash_MD5DebugMD5.obj
     文件       74752  2019-05-31 10:52  01_实验题目实验1 - Hash算法MD5Hash_MD5Debugvc60.idb
     文件      102400  2019-05-31 10:52  01_实验题目实验1 - Hash算法MD5Hash_MD5Debugvc60.pdb
     文件        1454  2019-05-31 10:51  01_实验题目实验1 - Hash算法MD5Hash_MD5filename.txt
     文件        4303  2019-05-31 10:51  01_实验题目实验1 - Hash算法MD5Hash_MD5Hash_MD5.dsp
     文件         524  2019-05-31 10:51  01_实验题目实验1 - Hash算法MD5Hash_MD5Hash_MD5.dsw
     文件       33792  2019-05-31 10:51  01_实验题目实验1 - Hash算法MD5Hash_MD5Hash_MD5.ncb
     文件       48640  2019-05-31 10:51  01_实验题目实验1 - Hash算法MD5Hash_MD5Hash_MD5.opt
     文件         893  2019-05-31 10:51  01_实验题目实验1 - Hash算法MD5Hash_MD5Hash_MD5.plg
     文件         802  2019-05-31 10:51  01_实验题目实验1 - Hash算法MD5Hash_MD5MD5.CPP
     文件     1928588  2019-05-31 10:52  01_实验题目实验1 - Hash算法MD5Hash_MD5MD5.exe
     文件        1698  1994-03-16 11:34  01_实验题目实验1 - Hash算法MD5MD5.H
     文件       10631  2011-04-01 21:03  01_实验题目实验1 - Hash算法MD5MD5C.C
............此处省略243个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)