资源简介
最简单rsa加解密,简单易懂,有益于初步学习。 !!!!
代码片段和文件信息
#include
#include
#include
using namespace std;
/* RSA算法中加密方公布的密钥是N和E,解密方使用N和D解密 */
#define P 5 /* P和Q必须为素数,在实际运用中通常为很大的数 */
#define Q 7
#define N (P*Q) /* add the () or will cause the mistake */
#define Z ((P - 1)*(Q - 1))
#define E 5 /* 加密方选择E,E必须和Z只有一个公约数 */
#define D 5 /* (E * D - 1)必须能够被Z整除 */
/* 由于long int无法表示过大的数字,所以D取5 */
int main(void)
{
//读取文件,将每个字符按二进制每两位组一个数放入int数组,然后对每个数进行加密,加密后的放入数组2
//将数组2的数重新组成一个数放入加密文件中
char filenameDJM[100]={0};
char filenameYJM[100]={0};
char filenameJM[100]={0};
cout<<“输入待价密文件文件名:“;cin>>filenameDJM;
cout<<“输入加密后文件文件名:“;cin>>filenameYJM;
cout<<“输入解密后文件文件名:“;cin>>filenameJM;
int i;
//打开明文文件
FILE *fp =fopen(filenameDJM“rb“);
if(fp==NULL)
{
cout<<“文件不存在1“;
system(“pause“);return 0;
}
//打开存放密文的文件
FILE *wfp=fopen(filenameYJM“wb“);
if(wfp==NULL)
{
fclose(fp);
cout<<“文件不存在2“;
system(“pause“);return 0;
}
int str=0;
while(0<(str=fgetc(fp)))
{
int TrsMsg[4];
int j=0;
for(i = 0; i < 8; i=i+2)
{
if(str << i & 0x80)
TrsMsg[j]=1;
else
TrsMsg[j]=0;
if(str << (i+1) & 0x80)
TrsMsg[j]=TrsMsg[j]*2+1;
else
TrsMsg[j]=TrsMsg[j]*2+0;
j++;
}
long en[4] de[4];
int SecCode[4];
//加密
for (i=0; i<4; i++)
{
/* s = m(E) mod N */
en[i] = (int)pow((double)TrsMsg[i] E);
SecCode[i] = en[i] % N;
//将SecCode[i]转二进制保存到文件中
- 上一篇:单片机控制直流电机正反转程序c语言
- 下一篇:频域积分-傅里叶变换-反变换.zip
相关资源
- aes加解密(vc源程序)
- VC++实现RSA加密算法
- C++实现RSA加密解密算法
- 椭圆曲线ECC加密解密算法的c语言实现
- c++实现ECC加解密
- C语言实现凯撒和维吉尼亚加解密
- 生成RSA密钥对
- RSA算法纯C语言代码实现,带测试dem
- OpenSSL RSA 非对称加密(VS2013,C++实现
- MFC写的对文件内容的DES加解密
- C++编写的数据加密程序源代码6个
- MFC实现RSA算法
- AES加解密算法实现MFC
- 数字签名算法,c++实现,RSA的算法
- 基于OpenSSL的RSA加解密的C语言实现
- 基于C++用用CBC与ECB模式的DES加解密
- DES MFC实现在VC6.0中
- windows下获取CPU、BIOS、硬盘、MAC地址
-
C++ 实现 3DES加解密ba
se64加解密 - RSA加密算法用MFC实现
- 基于CryptoAPI 的数据加解密文件.rar
- rsa数字签名
- C++使用Openssl进行RSA加密解密及签名验
- c++实现ecc加解密算法
- MFC编写的DES加解密程序
- RSA算法加密MFC实现
- DES加解密 MFC
- OpenSSLx86 & x64开发库
- AES MFC
- RSA加密算法
评论
共有 条评论