<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          GoRSAGo 實現(xiàn)的加解密庫

          聯(lián)合創(chuàng)作 · 2023-09-30 07:55

          GoRSA 加解密庫

          Golang使用RSA進(jìn)行公鑰加密私鑰解密,私鑰加密公鑰解密的實現(xiàn)

          基于 https://github.com/farmerx/gorsa 進(jìn)行封裝優(yōu)化了如下幾點:

          • 公私鑰需要提前注冊,在并發(fā)情況下公私鑰匙會混亂

          • 加密機(jī)沒有進(jìn)行base64處理,在跨程序傳遞或存儲過程中都避免base64二次封裝

          • 傳入返回都統(tǒng)一使用string類型避免轉(zhuǎn)換麻煩

          獲取擴(kuò)展包:

          go get github.com/wenzhenxi/gorsa

          具體使用:

          package main
          
          import (
          	"log"
          	"errors"
          	"github.com/wenzhenxi/gorsa"
          )
          
          var Pubkey = `-----BEGIN 公鑰-----
          MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk+89V7vpOj1rG6bTAKYM
          56qmFLwNCBVDJ3MltVVtxVUUByqc5b6u909MmmrLBqS//PWC6zc3wZzU1+ayh8xb
          UAEZuA3EjlPHIaFIVIz04RaW10+1xnby/RQE23tDqsv9a2jv/axjE/27b62nzvCW
          eItu1kNQ3MGdcuqKjke+LKhQ7nWPRCOd/ffVqSuRvG0YfUEkOz/6UpsPr6vrI331
          hWRB4DlYy8qFUmDsyvvExe4NjZWblXCqkEXRRAhi2SQRCl3teGuIHtDUxCskRIDi
          aMD+Qt2Yp+Vvbz6hUiqIWSIH1BoHJer/JOq2/O6X3cmuppU4AdVNgy8Bq236iXvr
          MQIDAQAB
          -----END 公鑰-----
          `
          
          var Pirvatekey = `-----BEGIN 私鑰-----
          MIIEpAIBAAKCAQEAk+89V7vpOj1rG6bTAKYM56qmFLwNCBVDJ3MltVVtxVUUByqc
          5b6u909MmmrLBqS//PWC6zc3wZzU1+ayh8xbUAEZuA3EjlPHIaFIVIz04RaW10+1
          xnby/RQE23tDqsv9a2jv/axjE/27b62nzvCWeItu1kNQ3MGdcuqKjke+LKhQ7nWP
          RCOd/ffVqSuRvG0YfUEkOz/6UpsPr6vrI331hWRB4DlYy8qFUmDsyvvExe4NjZWb
          lXCqkEXRRAhi2SQRCl3teGuIHtDUxCskRIDiaMD+Qt2Yp+Vvbz6hUiqIWSIH1BoH
          Jer/JOq2/O6X3cmuppU4AdVNgy8Bq236iXvrMQIDAQABAoIBAQCCbxZvHMfvCeg+
          YUD5+W63dMcq0QPMdLLZPbWpxMEclH8sMm5UQ2SRueGY5UBNg0WkC/R64BzRIS6p
          jkcrZQu95rp+heUgeM3C4SmdIwtmyzwEa8uiSY7Fhbkiq/Rly6aN5eB0kmJpZfa1
          6S9kTszdTFNVp9TMUAo7IIE6IheT1x0WcX7aOWVqp9MDXBHV5T0Tvt8vFrPTldFg
          IuK45t3tr83tDcx53uC8cL5Ui8leWQjPh4BgdhJ3/MGTDWg+LW2vlAb4x+aLcDJM
          CH6Rcb1b8hs9iLTDkdVw9KirYQH5mbACXZyDEaqj1I2KamJIU2qDuTnKxNoc96HY
          2XMuSndhAoGBAMPwJuPuZqioJfNyS99x++ZTcVVwGRAbEvTvh6jPSGA0k3cYKgWR
          NnssMkHBzZa0p3/NmSwWc7LiL8whEFUDAp2ntvfPVJ19Xvm71gNUyCQ/hojqIAXy
          tsNT1gBUTCMtFZmAkUsjqdM/hUnJMM9zH+w4lt5QM2y/YkCThoI65BVbAoGBAMFI
          GsIbnJDNhVap7HfWcYmGOlWgEEEchG6Uq6Lbai9T8c7xMSFc6DQiNMmQUAlgDaMV
          b6izPK4KGQaXMFt5h7hekZgkbxCKBd9xsLM72bWhM/nd/HkZdHQqrNAPFhY6/S8C
          IjRnRfdhsjBIA8K73yiUCsQlHAauGfPzdHET8ktjAoGAQdxeZi1DapuirhMUN9Zr
          kr8nkE1uz0AafiRpmC+cp2Hk05pWvapTAtIXTo0jWu38g3QLcYtWdqGa6WWPxNOP
          NIkkcmXJjmqO2yjtRg9gevazdSAlhXpRPpTWkSPEt+o2oXNa40PomK54UhYDhyeu
          akuXQsD4mCw4jXZJN0suUZMCgYAgzpBcKjulCH19fFI69RdIdJQqPIUFyEViT7Hi
          bsPTTLham+3u78oqLzQukmRDcx5ddCIDzIicMfKVf8whertivAqSfHytnf/pMW8A
          vUPy5G3iF5/nHj76CNRUbHsfQtv+wqnzoyPpHZgVQeQBhcoXJSm+qV3cdGjLU6OM
          HgqeaQKBgQCnmL5SX7GSAeB0rSNugPp2GezAQj0H4OCc8kNrHK8RUvXIU9B2zKA2
          z/QUKFb1gIGcKxYr+LqQ25/+TGvINjuf6P3fVkHL0U8jOG0IqpPJXO3Vl9B8ewWL
          cFQVB/nQfmaMa4ChK0QEUe+Mqi++MwgYbRHx1lIOXEfUJO+PXrMekw==
          -----END 私鑰-----
          `
          
          
          func main() {
          	// 公鑰加密私鑰解密
          	if err := applyPubEPriD(); err != nil {
          		log.Println(err)
          	}
          	// 公鑰解密私鑰加密
          	if err := applyPriEPubD(); err != nil {
          		log.Println(err)
          	}
          }
          
          // 公鑰加密私鑰解密
          func applyPubEPriD() error {
          	pubenctypt, err := gorsa.PublicEncrypt(`hello world`,Pubkey)
          	if err != nil {
          		return err
          	}
          
          	pridecrypt, err := gorsa.PriKeyDecrypt(pubenctypt,Pirvatekey)
          	if err != nil {
          		return err
          	}
          	if string(pridecrypt) != `hello world` {
          		return errors.New(`解密失敗`)
          	}
          	return nil
          }
          
          // 公鑰解密私鑰加密
          func applyPriEPubD() error {
          	prienctypt, err := gorsa.PriKeyEncrypt(`hello world`,Pirvatekey)
          	if err != nil {
          		return err
          	}
          
          	pubdecrypt, err := gorsa.PublicDecrypt(prienctypt,Pubkey)
          	if err != nil {
          		return err
          	}
          	if string(pubdecrypt) != `hello world` {
          		return errors.New(`解密失敗`)
          	}
          	return nil
          }
          瀏覽 24
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久久久久久久久本色 | 黑丝高跟后入 | 二人做人爱的视频 | 日韩一级家庭乱伦片免费看 | 一黄大毛片 |