资源简介
此代码有如下特点:
1 知道解密结果是否正确 省去了在数据里加校验和
2 知道解密后的数据大小 省去了在数据里标明大小
3 在用公钥加密数据时用到了随机数 即每次加密相同的数据结果都不一样 省去了在数据里随机数
4 公钥加密私钥解密 私钥加密公钥解密 一对密钥即可相互传输数据
5 支持512 1024 2048三种级别的加密
更多信息请移步
http: blog csdn net sidyhe article details 39102329">此代码有如下特点:
1 知道解密结果是否正确 省去了在数据里加校验和
2 知道解密后的数据大小 省去了在数据里标明大小
3 在用公钥加密数据时用到了随机数 即每次加密相同的数据结果都不一样 省去了在数据里随机数
4 [更多]
代码片段和文件信息
// RSA.cpp : 定义控制台应用程序的入口点。
// http://blog.csdn.net/sidyhe
#include “stdafx.h“
#include “RSAEuro/rsaeuro.h“
#include
/*
int _tmain(int argc _TCHAR* argv[])
{
R_RSA_PUBLIC_KEY PubKey;
R_RSA_PRIVATE_KEY PriKey;
R_RANDOM_STRUCT RandSt;
R_RSA_PROTO_KEY ProKey;
//生成密钥对
R_RandomCreate(&RandSt);
ProKey.bits = 1024;//512 or 1024 or 2048
ProKey.useFermat4 = 1;
R_GeneratePEMKeys(&PubKey &PriKey &ProKey &RandSt);
if (FILE *f = fopen(“pub.key“ “wb“))
{
fwrite(&PubKey sizeof(PubKey) 1 f);
fclose(f);
}
if (FILE *f = fopen(“pri.key“ “wb“))
{
fwrite(&PriKey sizeof(PriKey) 1 f);
fclose(f);
}
//公钥加密私钥解密
char *TestBuffer = “Hello!Sid!!!“;
{
unsigned char EncryptBuffer[128] = {0};
unsigned char DecryptBuffer[128] = {0};
unsigned int InputLen = sizeof(EncryptBuffer);
unsigned int OutputLen = sizeof(DecryptBuffer);
R_RandomCreate(&RandSt);
RSAPublicEncrypt(EncryptBuffer &InputLen (unsigned char*)TestBuffer strlen(TestBuffer) &PubKey &RandSt);
RSAPrivateDecrypt(DecryptBuffer &OutputLen EncryptBuffer InputLen &PriKey);
printf(“Test1:%s\n“ DecryptBuffer);
}
//私钥加密公钥解密
{
unsigned char EncryptBuffer[128] = {0};
unsigned char DecryptBuffer[128] = {0};
unsigned int InputLen = sizeof(EncryptBuffer);
unsigned int OutputLen = sizeof(DecryptBuffer);
RSAPrivateEncrypt(EncryptBuffer &InputLen (unsigned char*)TestBuffer strlen(TestBuffer) &PriKey);
RSAPublicDecrypt(DecryptBuffer &OutputLen EncryptBuffer InputLen &PubKey);
printf(“Test2:%s\n“ DecryptBuffer);
}
getchar();
return 0;
}
*/
int _tmain(int argc _TCHAR* argv[])
{
R_RSA_PUBLIC_KEY PubKey;
R_RSA_PRIVATE_KEY PriKey;
if (FILE *f = fopen(“pub.key“ “rb“))
{
fread(&PubKey sizeof(PubKey) 1 f);
fclose(f);
}
if (FILE *f = fopen(“pri.key“ “rb“))
{
fread(&PriKey sizeof(PriKey) 1 f);
fclose(f);
}
//
char *TestBuffer = “Hello!Sid!!!“;
{
unsigned char EncryptBuffer[128] = {0};
unsigned char DecryptBuffer[128] = {0};
unsigned int InputLen = sizeof(EncryptBuffer);
unsigned int OutputLen = sizeof(DecryptBuffer);
RSAPrivateEncrypt(EncryptBuffer &InputLen (unsigned char*)TestBuffer strlen(TestBuffer) &PriKey);
RSAPublicDecrypt(DecryptBuffer &OutputLen EncryptBuffer InputLen &PubKey);
printf(“Test2:%s\n“ DecryptBuffer);
}
getchar();
return 0;
}
- 上一篇:CodeSnitch破解版,支持WINCE6.0
- 下一篇:最小二乘法线性非线性拟合
相关资源
- The direction of synaptic plasticity mediated
- C 大整数RSA加密
- DXperienceUniversal 10.1.6(2010年8月13日版
- RSA算法源码
- RSA AES DES ECC加密算法源码
- 易语言RSA加解密源码
- Anti-biofilm Activity of Resveratrol and Ursol
- IBM Rational Software Architect 9.0破解文件
- Universal Extractor(万能文件解包工具)
- DXperienceUniversal-11.1.7.part06
- DXperienceUniversal-11.1.7.part08
- DXperienceUniversal-11.1.7.part14
- DXperienceUniversal-11.1.7.part15
- DXperienceUniversal-11.1.7.part10
- DXperienceUniversal-11.1.7.part13
- DXperienceUniversal-11.1.7.part03
- DXperienceUniversal-11.1.7.part02
- DXperienceUniversal-11.1.7.part09
- DXperienceUniversal-11.1.7.part19
- DXperienceUniversal-11.1.7.part12
- DXperienceUniversal-11.1.7.part18
- DXperienceUniversal-11.1.7.part16
- DXperienceUniversal-11.1.7.part20
- DXperienceUniversal-11.1.7.part07
- DXperienceUniversal-11.1.7.part17
- DXperienceUniversal-11.1.7.part04
- IBM 2U Universal Tape Autoloader产品手册
- IBM 4U Universal Tape Library产品手册
- 密码学实验RSA加解密
- yafu暴力分解
评论
共有 条评论