• openssl RSA 秘钥格式 pkcs1 和 pkcs8相互转换


    PKCS

      The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名数字信封的格式等方面的一系列相关协议。

    eg: pkcs1 私钥内容 base64 得到数组, 48 (RSA 标示第一字节), 130 (长度占用字节描述方式,长度计算方式,如果小于128,自身表示长度值,否则与127进行与运算,得到的结果为长度,但与运算后的长度不得大于3,例如130表示长度占2位), 4, 163 (长度值,4*256+163, 此处的长度值为该字节之后的所有字节数,且需要验证通过), 2 (RSA 私钥证书固定字节), 1 (长度), 0 ( RSA 描述头结束,该字节必须为0), 2 (PKCS1 长度开始标示), 130 (长度占用字节描述方式), 1, 1 (长度值), 0, ...(长度256,连续0为填充内容,  RSAParameters.Modulus 数据) , 2 (PKCS1 长度开始标示), 3 (长度占用字节描述方式), 1, 0, 1 ( RSAParameters.Exponent 数据), 2 (PKCS1 长度开始标示), 130 (长度占用字节描述方式), 1, 0 (长度值), ... (长度256, RSAParameters.D 数据), 2 (PKCS1 长度开始标示), 129, 129 (长度占用字节描述方式 ), 0, ... (长度128)后省略3次

    1. openssl 生成pkcs1 格式的私钥  秘钥长度:1024

    openssl genrsa -out private.pem 1024

    2. PKCS1私钥转换为PKCS8

    openssl pkcs8 -topk8 -inform PEM -in private.pem -outform pem -nocrypt -out pkcs8.pem

    3. PKCS8格式私钥再转换为PKCS1格式

    openssl rsa -in pkcs8.pem -out pkcs1.pem

    4. 从pkcs1私钥中生成pkcs8公钥

    openssl rsa -in private.pem -pubout -out public.pem

    5. 从pkcs8私钥中生成pkcs8公钥

    openssl rsa -in pkcs8.pem -pubout -out public_pkcs8.pem

    6. pkcs8公钥转pkcs1公钥

    openssl rsa -pubin -in public.pem -RSAPublicKey_out

    7. pkcs1公钥转换为pkcs8公钥

    openssl rsa -RSAPublicKey_in -in pub_pkcs1.pem -pubout

    python 使用 crypto  pypi : https://pypi.org/project/pycrypto/

    参考的博客地址: https://www.cnblogs.com/cocoajin/p/10510574.html

  • 相关阅读:
    C#网络编程之Http请求
    使用 pdf.js 在网页中加载 pdf 文件
    程序员转型技术管理,这几本书不能错过
    HTTPS小结 、TSL、SSL
    clipboard 在 vue 项目中,on 事件监听回调多次执行
    Vue 引入 .md 文件,解析markdown语法
    Vue cli4.0 代理配置
    npm publish 一直报错 404
    JSON 多层对象获取键值
    Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置
  • 原文地址:https://www.cnblogs.com/yanhui1995/p/13396362.html
Copyright © 2020-2023  润新知