C语言实现RSA解密时的一个问题

在加密时所用到的字符转换直接是用ASCII中的数字大小,但是在解密过程中却解密得到的数字完全对不上,是怎么回事?

[code=c]
for (i = 1;i <= filesize;++i) { //这里是转字符为整形保存为数组的,其实我觉得没必要
inside_ol[i] = inside_ol1[i - 1];
inside_ol[i] = inside_ol[i];
inside_ol2[i] = RSA_encrypt(inside_ol + i, e);
int transform(int b, int *a) //这里是解密的时候的模指运算模块,加密的时候也是这个。
{
int t, temp = -1;
while (b>0) {
t = b % 2;
++temp;
a[temp] = t;
b = b / 2;
}
return temp;
}
int RSA_encrypt(char *inside_ol, int b)
{
int a = *inside_ol;
int x = 0, back = 1, k, i, s[1000];
k = transform(b, s);
for (i = k;i >= 0;i--) {
x = 2 * x;
back = (back*back) % n;
if (s[i] == 1) {
x++;
back = (back*a) % n;
}
}
return back;
}[/code]

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问