1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        GoRSAGo 實現的加解密庫

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

        GoRSA 加解密庫

        Golang使用RSA進行公鑰加密私鑰解密,私鑰加密公鑰解密的實現

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

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

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

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

        獲取擴展包:

        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
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        編輯 分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            男人鸡鸡捅女人 | 男人天堂成人网站 | 狠狠操免费视频 | 国产裸体永久免费视频网站 | 影音先锋欧美性爱 | 亚洲精品综合精品自拍 | 亚洲人在线观看 | 欧美肏屄网站 | 免费大片www | 成年视频网站在线观看 |