永发信息网

C++如何实现RSA数据加密的算法?

答案:1  悬赏:60  手机版
解决时间 2021-04-12 07:11
  • 提问者网友:我是女神我骄傲
  • 2021-04-11 07:28
C++如何实现RSA数据加密的算法?
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-04-11 07:40

void CRSAEncriptDlg::OnOK()
{
UpdateData();


//选取素数p和q
int p = 43;
int q = 59;
//计算n
int n = p*q;
int cn = (p-1)*(q-1);


//选取b
int b = 5;
//选取a,使a*b-cn*x=1
int a =1949;
//将明文以两个字符为一组进行分组,以00表示a,01表示b,03表示c,......

if (m_Info.IsEmpty())
{
MessageBox("请输入加密信息");
return;
}
int len = m_Info.GetLength();
if (len %2 != 0)
{
MessageBox("输入的字符数必须为偶数");
return;
}
//存储明文的数字化格式
int iData[100];// = new int(len);
int index = 0;
CString str;
for (int i = 0 ; i< len; i++,index++)
{
int one = m_Info[i]-97;
int two = m_Info[i+1]-97;
if (two<10)
str.Format("%i0%i",one,two);
else
str.Format("%i%i",one,two);
iData[index] = atoi(str);
i++;
}
//对明文数字进行加密
//c= E(m) = m^b mod n m为明文数字
m_Encript = "";
for (i = 0 ; i< index ; i++)
{
iData[i] = ((UINT64) pow(iData[i],b)) % n;
if (i != index-1)
str.Format("%i-",iData[i]);
else
str.Format("%i",iData[i]);
m_Encript+=str;
}
UpdateData(FALSE);
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯