RSA私鑰及公鑰生成

OpenSSL工具安裝

  • Linux用戶(以Ubuntu爲例)
    sudo apt-get install openssl工具

  • Windows用戶
    開發者能夠在OpenSSL官方網站下載Windows的OpenSSL安裝包進行安裝。網站

RSA私鑰及公鑰生成

  • Linux用戶(以Ubuntu爲例)
    $ openssl 進入OpenSSL程序
    OpenSSL> genrsa -out rsa_private_key.pem 1024 生成私鑰
    OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt Java開發者須要將私鑰轉換成PKCS8格式
    OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 生成公鑰
    OpenSSL> exit ## 退出OpenSSL程序加密

  • Windows用戶在cmd窗口中進行如下操做:
    C:\Users\Hammer>cd C:\OpenSSL-Win32\bin 進入OpenSSL安裝目錄
    C:\OpenSSL-Win32\bin>openssl.exe 進入OpenSSL程序
    OpenSSL> genrsa -out rsa_private_key.pem 1024 生成私鑰
    OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt Java開發者須要將私鑰轉換成PKCS8格式
    OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 生成公鑰
    OpenSSL> exit ## 退出OpenSSL程序spa

注意:對於使用Java的開發者,將pkcs8在console中輸出的私鑰去除頭尾、換行和空格,做爲開發者私鑰,對於.NET和PHP的開發者來講,無需進行pkcs8命令行操做。命令行

通過以上步驟,開發者能夠在當前文件夾中(Windows用戶在C:\OpenSSL-Win32\bin)看到rsaprivatekey.pem和rsapublickey.pem兩個文件,前者爲私鑰,後者爲公鑰。開發者將私鑰保留,將公鑰提交給支付寶網關,用於信息加密及解密。如下爲使用OpenSSL生成的私鑰文件和公鑰文件示例。code

  • 標準的私鑰文件示例(PHP、.NET使用)orm

    1
    2
    3
    -----BEGIN RSA PRIVATE KEY-----
    MIICXQIBAAKBgQC+L0rfjLl3neHleNMOsYTW8r0QXZ5RVb2p/vvY3fJNNugvJ7lo4+fdBz+LN4mDxTz4MTOhi5e2yeAqx+v3nKpNmPzC5LmDjhHZURhwbqFtIpZD51mOfno2c3MDwlrsVi6mTypbNu4uaQzw/TOpwufSLWF7k6p2pLoVmmqJzQiD0QIDAQABAoGAakB1risquv9D4zX7hCv9MTFwGyKSfpJOYhkIjwKAik7wrNeeqFEbisqv35FpjGq3Q1oJpGkem4pxaLVEyZOHONefZ9MGVChT/MNH5b0FJYWl392RZy8KCdq376Vt4gKVlABvaV1DkapL+nLh7LMo/bENudARsxD55IGObMU19lkCQQDwHmzWPMHfc3kdY6AqiLrOss+MVIAhQqZOHhDe0aW2gZtwiWeYK1wB/fRxJ5esk1sScOWgzvCN/oGJLhU3kipHAkEAysNoSdG2oWADxlIt4W9kUiiiqNgimHGMHPwp4JMxupHMTm7D9XtGUIiDijZxunHv3kvktNfWj3Yji0661zHVJwJBAM8TDf077F4NsVc9AXVs8N0sq3xzqwQD/HPFzfq6hdR8tVY5yRMb4X7+SX4EDPORKKsgnYcur5lk8MUi7r072iUCQQC8xQvUne+fcdpRyrR4StJlQvucogwjTKMbYRBDygXkIlTJOIorgudFlrKP/HwJDoY4uQNl8gQJb/1LdrKwIe7FAkBl0TNtfodGrDXBHwBgtN/t3pyi+sz7OpJdUklKE7zMSBuLd1E3O4JMzvWP9wEE7JDb+brjgK4/cxxUHUTkk592
    -----END RSA PRIVATE KEY-----
  • PKCS8處理後的私鑰文件示例(Java使用)ip

    1
    2
    3
    -----BEGIN PRIVATE KEY-----
    MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAN0yqPkLXlnhM+2H/57aHsYHaHXazr9pFQun907TMvmbR04wHChVsKVgGUF1hC0FN9hfeYT5v2SXg1WJSg2tSgk7F29SpsF0I36oSLCIszxdu7ClO7c22mxEVuCjmYpJdqb6XweAZzv4Is661jXP4PdrCTHRdVTU5zR9xUByiLSVAgMBAAECgYEAhznORRonHylm9oKaygEsqQGkYdBXbnsOS6busLi6xA+iovEUdbAVIrTCG9t854z2HAgaISoRUKyztJoOtJfI1wJaQU+XL+U3JIh4jmNx/k5UzJijfvfpT7Cv3ueMtqyAGBJrkLvXjiS7O5ylaCGuB0Qz711bWGkRrVoosPM3N6ECQQD8hVQUgnHEVHZYtvFqfcoq2g/onPbSqyjdrRu35a7PvgDAZx69Mr/XggGNTgT3jJn7+2XmiGkHM1fd1Ob/3uAdAkEA4D7aE3ZgXG/PQqlm3VbE/+4MvNl8xhjqOkByBOY2ZFfWKhlRziLEPSSAh16xEJ79WgY9iti+guLRAMravGrs2QJBAOmKWYeaWKNNxiIoF7/4VDgrcpkcSf3uRB44UjFSn8kLnWBUPo6WV+x1FQBdjqRviZ4NFGIP+KqrJnFHzNgJhVUCQFzCAukMDV4PLfeQJSmna8PFz2UKva8fvTutTryyEYu+PauaX5laDjyQbc4RIEMU0Q29CRX3BA8WDYg7YPGRdTkCQQCG+pjU2FB17ZLuKRlKEdtXNV6zQFTmFc1TKhlsDTtCkWs/xwkoCfZKstuV3Uc5J4BNJDkQOGm38pDRPcUDUh2/
    -----END PRIVATE KEY-----
  • 公鑰文件示例支付寶

    1
    2
    3
    -----BEGIN PUBLIC KEY-----
    MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxLDkeGKjyQPt2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unormYQAfsM/CxzrfMoVdtwSiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/QpkddCVXnZ4bAUaQjXQIDAQAB
    -----END PUBLIC KEY-----

FAQ

  • 關於此文檔暫時尚未FAQssl

相關文章
相關標籤/搜索