zoukankan      html  css  js  c++  java
  • python RSA 相关方法

    python RSA 相关方法

    PKCS1 和 PKCS8格式私钥

    PKCS1 和 PKCS8格式,二者表达的是同一把钥匙,对同一段内容加密/解密出来的内容完成相同.

    • PKCS1 格式
    -----BEGIN RSA PRIVATE KEY-----
    MIIEpQIBAAKCAQEAu6t3uO3tu6WDK3RTqLHrlNFS91TMOnAzkXNvKzRZFerl2D8A
    gN4s12pEMbpe39idE2PbrNzAOgYnrV7z2sKwtOMVICHewiqy+Gal9HwJ+u4hqIqT
    uqizmYgK4V9qVwgIkwLQzoivjJa1/lK6iVJGGgur04FPr4O6wJkgFpT0R78chdRY
    dG/YPkKNTvWx29vimUGFOKIzijB2FD+sICoV7kp8bfQ+taLg3C2RJpyORlGFf+lh
    5LL8Ak+Ux5CsjPAln0Zags7CceKPvVag785x0hXNa2Bxy12wWJ1CKFzI6jxTYwoi
    sutcBIg5qRy20+fynJV1rtQC0VihH708AmUywwIDAQABAoIBAC+/RmyUjGGrkJ3j
    sM1AxzFLuJIYzwUnOteMyQHzBZ9f123AiP5AiKQd80+7nRvSntQqGd/3IikhG8Mu
    X1iPJCpBhERymZxJBNPSOfLkBB4FrCaXa1KYTWmIhUwl3IZcEuJkWv/RIujgB1m3
    bqI1foRt57+eLMn49/C8hL96ElSWSFye9LpolvCbR+cnh+dNoqF6iOkrQ0wtXAvt
    mhSCSpbSX5zdqyUewgWbssRuktCrd4DKwugzs+IBR9dciNgadbg3G5qyvjMAt6Um
    AWM9ogRzcfcQnu/BnKchu6KSdDYN/xwIWFZ+4NBFuhA/M+bjq/RzJAgfQF1YA7wv
    mPORpiECgYEA/N427suQClSWBys63ndAb/uPrCTKRqWh+rnlZkM9/OSJumwcLFSI
    X3zTXOblPCevSqz4i3KW5QB2hVN5bSa8n7bkbGQGfULgx163HXTH2EYhGwdkrCTt
    x6pXpH5SlYsA6d/5xo9s3NbYMMOnYpyoFLk4a7TZRkR3UU+SrVqGhmkCgYEAvf6G
    VNm1QVHzJB4mX9Tobg3otufefUiG3PrUg+tJhVKiqKfDITqpFrkkdkQOSwm/vG6e
    XVrymqaCSUORnB9+sf3tAKuBO3v5W/JzErULnchs2E4kZZBR7t8+LFJm8/SN9srF
    nVioupPulC1234dhejaHzkOAdLAgFwilTeiXAksCgYEA1qp+z/IX8e0lACj+7OUn
    2ukgau9AmQD7pbIywMHM2efZ1Fz6/dc1fnqlpHSPnqXB9g8pYJiC6R2fgEgBCVyd
    PKky+aFgsO4ZjKcnpOYC0eOXLy7zlAA1rA88H/Ttfu5mdCUkEiCoNkJdfehbLSf4
    uL8U2rrIyRJOiMSYrHnxQiECgYEAoyweeG8FkVTtad6O/IzhFevSKowW9Cg+0ziF
    HcsMOHmRAyIZnsc/gyl83Cl00RNNXWrvjaPXaeSJTpy+SIRwDjPTwViKQ+kkbshZ
    9f4RPPBuMpNiBOwewfVu8yfODcTBy+u4Lnt/Z123B3ncENZqjEia+BXXE+BTnxSo
    y7FvR+MCgYEAjH28l1pO92zW2nxVsozzLq4LjcPSXTFRG7Kj2dSNy+WRo9Iemfd6
    qMbMgRBF6haqGgLpOu+Sl6ekchBjuP/ZGCw+BkZmicwZ8oRVYMgV1NVK/aVojAWU
    UOF8WFmy8dm/E6TN1wZ1l74TfAV2Y8YAz1SS2h8EF41Ydt7nNU6XSrs=
    -----END RSA PRIVATE KEY-----
    
    • PKCS8 格式
    -----BEGIN PRIVATE KEY-----
    MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC7q3e47e27pYMr
    dFOoseuU0VL3VMw6cDORc28rNFkV6uXYPwCA3izXakQxul7f2J0TY9us3MA6Biet
    XvPawrC04xUgId7CKrL4ZqX0fAn67iGoipO6qLOZiArhX2pXCAiTAtDOiK+MlrX+
    UrqJUkYaC6vTgU+vg7rAmSAWlPRHvxyF1Fh0b9g+Qo1O9bHb2+KZQYU4ojOKMHYU
    P6wgKhXuSnxt9D61ouDcLZEmnI5GUYV/6WHksvwCT5THkKyM8CWfRlqCzsJx4o+9
    VqDvznHSFc1rYHHLXbBYnUI1232131231iKy61wEiDmpHLbT5/KclXWu1ALRWKEf
    vTwCZTLDAgMBAAECggEAL79GbJSMYauQneOwzUDHMUu4khjPBSc614zJAfMFn1/u
    LoCI/kCIpB3zT7udG9Ke1CoZ3/ciKSEbwy5fWI8kKkGERHKZnEkE09I58uQEHgWs
    JpdrUphNaYiFTCXchlwS4mRa/9Ei6OAHWbduojV+hG3nv54syfj38LyEv3oSVJZI
    XJ70umiW8JtH5yeH502ioXqI6StDTC1cC+2123213tJfnN2rJR7CBZuyxG6S0Kt3
    gMrC6DOz4gFH11yI2Bp1uDcbmrK+MwC3pSYBYz2iBHNx9xCe78GcpyG7opJ0Ng3/
    HAhYVn7g0EW6ED8z5uOr9HMkCB9AXVgDvC+Y85GmIQKBgQD83jbuy5AKVJYHKzre
    d0Bv+4+sJMpGpaH6ueVmQz385Im6bBwsV12343Nc5uU8J69KrPiLcpblAHaFU3lt
    JryftuRsZAZ9QuDHXrcddMfYRiEbB2SsJO3HqlekflKViwDp3/nGj2zc1tgww6di
    nKgUuThrtNlGRHdRT5KtWoaGaQKBgQC9/oZU2bVBUfMkHiZf1OhuDei25959SIbc
    +tSD60mFUqKop8MhOqkWuSR2RA5LCb+8bp5dWvKapoJJQ5GcH36x/e0Aq4E7e/lb
    8nMStQudyGzYTiRlkFHu3z4sUmbz9I32ysWdWKi6k+6UJpE9J2F6NofOQ4B0sCAX
    CKVN6JcCSwKBgQDWqn7P8hfx7SUAKP7s5Sfa6SBq70CZAPulsjLAwczZ59nUXPr9
    1zV+eqWkdI+epcH2DylgmILpHZ+ASAEJXJ08qTL5oWCw7hmMpyek5gLR45cvLvOU
    ADWsDzwf9O1+7mZ0JSQSIKg2Ql196FstJ/i4vxTausjJEk6IxJisefFCIQKBgQCj
    LB54bwWRVO1p3o78jOEV69IqjBb0KD7TOIUdyww4eZEDIhmexz+DKXzcKXTRE01d
    au+No9dp5IlOnL5IhHAOM9PBWIpD6SRuyFn1/hE88G4yk2IE7B7B9W7zJ84NxMHL
    67gue39lxjkHedwQ1mqMSJr4FdcT4FOfFKjLsW9H4wKBgQCMfbyXWk73bNbafFWy
    jPMurguNw9JdMVEbsqPZ1I3L5ZGj0h6Z93qoxsyBEEXqFqoaAuk675KXp6RyEGO4
    /9kYLD4GRmaJzBnyhFVgyBXU1Ur9pWiMBZRQ4XxYWbLx2b8TpM3XBnWXvhN8BXZj
    xgDPVJLaHwQXjVh23uc1TpdKuw==
    -----END PRIVATE KEY-----
    
    

    PKCS8 转 PKCS1

    linux系统下:

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

    其中 pkcs8.pem 表示PKCS8格式的文件,pkcs1.pem表示PKCS1格式输出.

    python 加载PKCS1格式私钥

    import rsa
    pem = "***"
    raw_string = "***"
    # 加载私钥
    pri_key = rsa.PrivateKey._load_pkcs1_pem(pem)
    # 使用私钥对内容进行签名
    signature = rsa.sign(raw_string.encode('utf-8'), priv_key=pri_key, hash='SHA-1')
    

    python 加载PKCS8格式私钥

    rsa 包只能加载PKCS1格式的私钥,如果我们的私钥是PKCS8格式的,可以使用上节方法将PKCS8 转 PKCS1再使用.

  • 相关阅读:
    shentou mianshiti
    PHP
    XSS分类&危害&防御
    SQL注入原理&分类&危害&防御
    绕WAF&安全狗新姿势
    IO 模型
    SPC 判异
    [VBA]关于查找方法(Find方法)的应用(一)
    python学习第二十三天 并发编程(线程,进程,协程)
    excel 空单元格在图表中显示的方式 空 0 或者线
  • 原文地址:https://www.cnblogs.com/aloe-n/p/9583909.html
Copyright © 2011-2022 走看看