美文网首页
RSA解密失败解决方案

RSA解密失败解决方案

作者: 吕建雄 | 来源:发表于2022-11-21 16:47 被阅读0次

    在使用Objective-C-RSA进行RSA解密遇到的问题:

    1、使用github上demo中的公钥串和私钥串,加解密是可以成功

    2、通过RSA密钥生成器生成的公钥串和私钥串,加密可成功,解密失败

    通过跟踪代码发现问题出现在:stripPrivateKeyHeader 这个方法中,

    unsigned char *c_key = (unsigned char *)[d_key bytes];

    unsigned int  idx = 22; //magic byte at offset 22    

    if (0x04 != c_key[idx++]) {         return nil;     }

    由于c_key[idx++] != 0x04,所以直接返回nil;

    针对这种情况,尝试将addPrivateKey方法中,data = [RSA stripPrivateKeyHeader:data];的调用删除,删除后发现加解密可成功

    这行代码是干什么的作用是什么呢?

    原因是,MAC下生成的私钥不能直接被使用,需要进行PKCS#8编码 编码之后就可以了

    pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

    为了解决通过pem生成的私钥解密问题,所以此处可以修改代码,通过判断是否需要是pem生成的私钥还是私钥字符串,来决定是否调用stripPrivateKeyHeader方法

    相关文章

      网友评论

          本文标题:RSA解密失败解决方案

          本文链接:https://www.haomeiwen.com/subject/fhdnxdtx.html