life清者自清 2016-10-17 09:33 采纳率: 66.7%
浏览 1377

加密后密文长度有时等于公钥长度128,有时候不等于,什么原因啊,加密代码如下:

char my_encrypt(char str, char *pubkey_path)
{
// 打开公钥文件
FILE pub_fp=fopen(PUBKEY,"r");
if(pub_fp==NULL){
printf("failed to open PUBKEY file %s!\n", PUBKEY);
return ;
}
// 从文件中读取公钥
RSA
rsa1=PEM_read_RSA_PUBKEY(pub_fp, NULL, NULL, NULL);
if(rsa1==NULL)
{
printf("unable to read public key!\n");
return ;
}
fclose(pub_fp);
printf("strlen(str): %d\n",strlen(str));
printf("RSA_size(rsa1): %d\n",RSA_size(rsa1));

char *encrypted=NULL;
encrypted = (char *)malloc(1024);
memset(encrypted, 0, 1024);
// 用公钥加密
int len=RSA_public_encrypt(strlen(str), str, encrypted, rsa1, RSA_PKCS1_PADDING);
if(len==-1 )
{
printf("failed to encrypt\n");
return ;
}
return encrypted;
}

  • 写回答

2条回答

  • dabocaiqq 2016-10-17 15:38
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料