简单的RSA加密,没有大整数库,验证RSA算法
code blocks可以直接跑
由于取模的特性,0模任何数得0,不能将空格放在转换数组的第一位,第一位下标为0,加密后可以看出空格位置。
代码如下,测试能运行就直接发了,没有封装好加密解密过程,所以主函数看起来很乱。
大家可以参考一下~
#include<bits/stdc++.h>
using namespace std;
//单个数字加密
int encrypt(int before, int & n, int & e)
{
int after = before % n;
for(int i = 0; i < e - 1 ; i++)
{
after = (after * before) % n;
}
return after;
}
//单个数字解密
int decrypt(int loop_time, int & after, int & n)
{
int temp = after % n;
for(int i = 0; i < loop_time - 1; i++)
{
temp = (after * temp) % n;
}
return temp;
}
//将空格也考虑进输入的字符串,不能将空格放在第一位,
//第一位下标为0,0模任何数得0,加密后可以看出空格位置
//单个字母转化为数字
int CharToInt(char & ch)
{
int IntTemp;
char zimu[28]={
'*','a','b','c','d','e','f','g','h',