📄 rsa.cpp
字号:
//#include<vcl.h>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include"RSA.h"
#include<iostream>
using namespace std;
RSA::RSA()
{
}
RSA::~RSA()
{
}
void RSA::init()
{
ValuePQ.setZero();
PubKey.setZero();
PriKey.setZero();
}
void RSA::setValueHex(const byte *textN,const byte *textE,const byte *textD)
{
PubKey.loadHEX(textE);
PriKey.loadHEX(textD);
ValuePQ.loadHEX(textN);
}
void RSA::setValueHex(const byte *textE,int size_num)
{
PubKey.loadHEX(textE,size_num);
}
void RSA::setValuePQStr(const byte *text,int size_num)
{
ValuePQ.loadSTR(text,size_num);
}
void RSA::setValueDStr(const byte *text,int size_num)
{
PriKey.loadSTR(text,size_num);
}
byte* RSA::Encrypt(const byte *pData)
{
BigInt iBase,result;
byte *mi_wen;
mi_wen=new byte[8192];
for(int i=0;i<8192;i++)
mi_wen[i]='\0';
iBase.setZero();
iBase.loadSTR(pData);
//iBase.loadHEX(pData);//调试用的
result=MontExpo(iBase,PubKey,ValuePQ);
mi_wen=result.outputHEX();
return mi_wen;
}
byte* RSA::Decrypt(const byte *pData)
{
BigInt iBase,result;
byte *min_wen;
min_wen=new byte[8192];
for(int i=0;i<8192;i++)
min_wen[i]='\0';
iBase.setZero();
iBase.loadHEX(pData);
result=MontExpo(iBase,PriKey,ValuePQ);
min_wen=result.outputSTR();
return min_wen;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -