zoukankan      html  css  js  c++  java
  • python rsa-oaep加密示例

    代码:

     1 from Crypto.PublicKey import RSA
     2 from Crypto.Cipher import PKCS1_OAEP
     3 import base64
     4 rsa_key_pair = RSA.generate(1024)
     5 pubkey = rsa_key_pair.publickey().export_key()
     6 privkey = rsa_key_pair.export_key()
     7 print(pubkey.decode())
     8 print(privkey.decode())
     9 
    10 # 公钥加密
    11 text = "hello world"
    12 rsa_pubkey = RSA.import_key(pubkey)
    13 cipher_pub = PKCS1_OAEP.new(rsa_pubkey)
    14 ciphervalue_enc = base64.b64encode(cipher_pub.encrypt(text.encode("utf-8")))
    15 print("加密内容:
    {}".format(ciphervalue_enc.decode()))
    16 
    17 #私钥解密
    18 rsa_privkey = RSA.import_key(privkey)
    19 cipher_priv = PKCS1_OAEP.new(rsa_privkey)
    20 ciphervalue_dec = cipher_priv.decrypt(base64.b64decode(ciphervalue_enc))
    21 print("解密内容:
    {}".format(ciphervalue_dec.decode()))

    输出:

    -----BEGIN PUBLIC KEY-----
    MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCk5RDTc88/13NClCz2u8JbERQZ
    5+5oqdic9LkqfpHXguxBd31j6sV9zBurnT85O6+08D/eRCZj7DA3vR2pXziglDaJ
    kUXNjuX0403NXHyNFugjbZyGfwr3r1V8B7ZCcyCZNW4V28naM0NF9jcVgb6haDQP
    7k5ht92sQ7IJiXROKQIDAQAB
    -----END PUBLIC KEY-----
    -----BEGIN RSA PRIVATE KEY-----
    MIICXQIBAAKBgQCk5RDTc88/13NClCz2u8JbERQZ5+5oqdic9LkqfpHXguxBd31j
    6sV9zBurnT85O6+08D/eRCZj7DA3vR2pXziglDaJkUXNjuX0403NXHyNFugjbZyG
    fwr3r1V8B7ZCcyCZNW4V28naM0NF9jcVgb6haDQP7k5ht92sQ7IJiXROKQIDAQAB
    AoGARVXAVnlayuhoIbW2lmTq22n5/s6kU8QfPhg1B+ZCotD9UKXSxsHAGx5JAEdV
    f1ZWkol3AZm8XsXAnJ9bqo1MfKQcPLZRCG3FMQ6UUyse/R0Wc+ofzP8roM6y9qsG
    C8WlM5lSojyz+lgUH5+CaEtZW43kHitt/jzK0byj2An0c1UCQQDH6kDFh43mLFz0
    n4q6VSnCrCGTTuEsnnWGSlNafFyUURgeA6AWkfJNphErNBJul/thq6lXf9Hs61sd
    CI1WtDDTAkEA0yevHkbD4hV9eh4aW5r6sAgDEtpp3gaUoB9xyayeuO1GoowtTBhz
    NO+GttV+XyxFELCNBBwNIhpvVFWz/q+HkwJBAMGLuIPEtgum3aPzpiK5+sE/Vw4/
    6t8A1rVZ1hMfnZ32WQwN5HqVd+nXIn4aXtH1kGnCASP2Wu4t+jtEoVnVAAMCQH9c
    zmnqsThrUfYYtjlO76rCCmiSyYycV4WFsfK9ZjeRFyvwdVoS3Vqup4kcmU76uuXo
    OAakjN9nJoOt9hXG9nUCQQCJc398MvDedu8igFluMx8Cgt6s3Srwp/EZvcBK915u
    e5JvZ6uds64G9ooX+8mire50zpn7UbwPZzbEDffNYbIG
    -----END RSA PRIVATE KEY-----
    加密内容:
    Bod1WNuWMRky/bCZdNvWuCBYdMfejsEWqm08QwNxff3enwm1xxW6z/jEhs3trT8dmKgvX20wYSccH/7Ekcc/09Jnd6N3AuiCE922U5OdFLqOFhkORdQZP6uWisiiW7XoYNoY/Hzr8ZH+7s5/sw2w0MIpRyD+4Wlooxd8UDgThWA=
    解密内容:
    hello world

     RSA.import_Key()参数可以是bytes或string, 支持X509标准的公钥证书或者PKCS#1 DER编码的私钥证书,详细内容可见函数内的说明。

  • 相关阅读:
    1.5 判断是奇数还是偶数(比较运算符 & if...else)
    1.4计算器 (数字类型 & 算术运算符 &赋值运算符)
    1.3hello 张三(终端交互 & 字符串)
    1.2python语言环境 & python IDE(集成开发环境)搭建
    Centos 7 下安装jdk 7
    Centos 7 安装redis
    git 学习笔记
    git 基础操作
    git 获取远程分支的代码
    redis基础操作
  • 原文地址:https://www.cnblogs.com/brian-sun/p/13559073.html
Copyright © 2011-2022 走看看