美文网首页
iOS RSA2048本地生成密钥对

iOS RSA2048本地生成密钥对

作者: 冰雨9527 | 来源:发表于2020-07-17 18:30 被阅读0次

    iOS中生成RSA密钥字符串
    iOS使用OpenSSL进行RSA加密、验签的心得
    RSA_generate_key_ex函数调用中的RSA密钥生成错误
    iOS RSA加密解密及签名验证

    常见证书格式及相互转换
    iOS RSA密钥的生成与转换
    iOS 原生生成密钥对(方法一)
    openssl 生成密钥对(方法二)

    两种方法生成字符串的区别

    两种方案生成的密钥其实就是编码方式不同而已,方案一生成的是cer格式的密钥(0x30开头),方案二生成的是PEM格式的密钥(对cer格式的再次封装)但是主要的信息都是有的,只是不同的格式要做不同的解析处理。

    问题如何解决

    其实对应公钥来说最主要的就是指数和模数,只要有了这两个信息就能进行RSA的加解密操作。并且openssl也提供了通过指数和模数生成公钥的方法,iOS原生系统下也可以通过数据处理将指数和模数生成SecKeyRef
    openssl不仅提供了通过指数和模数生成密钥的方法,同时也有生成RSA密钥对,RSA加解密的方法,并且提供了许多原生系统不支持的方法,比如公钥解密。所以,如果需要动态生成密钥对,并且需要把密钥提供给其他平台使用的情况还是选择使用openssl会方便许多。当然,如果只是最数据加解密,或者生成的密钥也是给iOS/OS X平台使用的,那用原生的方式也是可以的。


    通过这个函数我们虽然可以得到私钥文件,但是却是PKCS1格式的,但是我需要的是PKCS8格式的。所以需要改用这个函数PEM_write_PKCS8PrivateKey。

    5、格式化私钥到pem格式的时候,注意开头和结尾要用如下格式(PKCS#1)

    BEGIN RSA PRIVATE KEY------END RSA PRIVATE KEY-----

    下面这种格式为(PKCS#8)

    BEGIN PRIVATE KEY---一-

    BASE64 ENCODED DATA

    -----END PRIVATE KEY-----

    PKCS#1结构仅为RSA设计。X509,SSL支 持的算法不仅仅是RSA,因此产生了更具有通用性的PKCS#8

    本人使用java做后台,后台使用同一公钥文件(格式为ANS.1 DER编码方式 长度为2048模长 ),加密

    注意:
    加密了的PEM编码PKCS#8文件表单用下面的头部和尾部:
    ——BEGIN ENCRYPTED PRIVATE KEY——
    ——END ENCRYPTED PRIVATE KEY——
    未加密的表单用:
    ——BEGIN PRIVATE KEY——
    ——END PRIVATE KEY——


    RSA公私钥对验证
    在线生成非对称加密公钥私钥对、在线生成公私钥对、RSA Key pair create、生成RSA密钥对
    在线RSA公私密钥校验、RSA公私密钥检查、Online RSA public-private key verification

    相关文章

      网友评论

          本文标题:iOS RSA2048本地生成密钥对

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