我想使用其 ASCII 值将字符加密(RSA)为整数。例如。'a' 被加密为 48。
对于加密:c=pow(m,e)%n
其中 c 是密文,m 是明文,(e,n) 是公钥。
如果 pow(m,e) 很大,比如 67^7,则它不适合int或long。但是如果我使用double,我不能将它与模数 % 运算符一起使用。所以我使用for循环编写了这个加密函数:
int encrypt(int m, int e, int n)
{
int res=m, i;
for(i=0; i<e-1;i++)
res=(res*res)%n;
return res;
}
它适用于 67^7mod11,即 67,但后来我知道它实际上并不正确。我哪里出错了?