⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsa.cpp

📁 RSA VC++实现
💻 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 + -