openssl的密钥问题,高手指教!

jjaing 2007-04-10 12:49:44
uint8_t pkn[36],pkd[36],pkp[36],pkq[36],pku[36],pkdp[36],pkdq[36],pke[36];
RSA *key;
key = RSA_new();
key = RSA_generate_key(1024, 65537, NULL, NULL);
int r;

r = BN_bn2bin(key->e, pke);
r = BN_bn2bin(key->n, pkn);
r = BN_bn2bin(key->d, pkd);
r = BN_bn2bin(key->dmp1, pkdp);
r = BN_bn2bin(key->dmq1, pkdq);
r = BN_bn2bin(key->p, pkp);
r = BN_bn2bin(key->q, pkq);
r = BN_bn2bin(key->iqmp, pku);

//encrypt

RSA *pkey;
pkey = RSA_new();
pkey->dmq1 = BN_new();
pkey->dmp1 = BN_new();
pkey->p = BN_new();
pkey->q = BN_new();
pkey->iqmp = BN_new();
pkey->e = BN_new();
pkey->n = BN_new();
pkey->d = BN_new();
BN_bin2bn((unsigned char *)pkd, 0x80, pkey->d);
BN_bin2bn((unsigned char *)pkdq, 0x40, pkey->dmq1);
BN_bin2bn((unsigned char *)pkdp, 0x40, pkey->dmp1);
BN_bin2bn((unsigned char *)pkp, 0x40, pkey->p);
BN_bin2bn((unsigned char *)pkq, 0x40, pkey->q);
BN_bin2bn((unsigned char *)pku, 0x40, pkey->iqmp);
BN_bin2bn(pke, 0x3, pkey->e);
BN_bin2bn(pkn, 0x80, pkey->n);
// r = RSA_check_key(pkey);
r = RSA_public_encrypt(0x08, input, ouput, pkey, RSA_PKCS1_PADDING);
r = RSA_public_encrypt(0x08, input, output1, key, RSA_PKCS1_PADDING);


上面的代码,将key的p,q,n等八个导出然后再导入,结果二次加密结果不一样了?

这是什么原因?高手指教
...全文
255 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjaing 2007-04-10
  • 打赏
  • 举报
回复
uint8_t pkn[144],pkd[144],pkp[144],pkq[144],pku[144],pkdp[144],pkdq[144],pke[144];

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧