rsa.cpp

来自「RSA VC++实现」· C++ 代码 · 共 76 行

CPP
76
字号
//#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 + =
减小字号Ctrl + -
显示快捷键?