golang RSA2加密/解密
$go get github.com/wenzhenxi/gorsa
test.go文件的内容
运行: $go run test.go
package main import ( "fmt" "log" "errors" "github.com/wenzhenxi/gorsa" ) var Pubkey = `-----BEGIN 公钥----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtjjnowvv475Aa+yxLRJu wS8P6wIxtOmHbB9A5Vb77js9WaUYnWsC2R0JCz+24RZuuC4nn4whZvwMKBpI9WQh vq6y4q07pnpFpu0x6jcSXNn/e+CWuC6HQXSorkwd2gP5pqQVsiT/a1xPRVpPVDpF 0AOR2TRDbXQx7vi/mmHnd4NKKxkjbmNG/tpjjpjuMhKj1geJeG46lcfpnvEUIYkK ac1wgED09jcFhZDdtKV3f4VWUw+UntZLMIr1jZQn70HyVvSa8VvcFTchpC6+fE9l l0D6Bb7Q9LD1rfs9SidGwX27BH05dx+aY1H9v8GTRHHwXrpvUP+VsTfH2puS8Kv7 awIDAQAB -----END 公钥----- ` var Pirvatekey = `-----BEGIN 私钥----- MIIEpAIBAAKCAQEAtjjnowvv475Aa+yxLRJuwS8P6wIxtOmHbB9A5Vb77js9WaUY nWsC2R0JCz+24RZuuC4nn4whZvwMKBpI9WQhvq6y4q07pnpFpu0x6jcSXNn/e+CW uC6HQXSorkwd2gP5pqQVsiT/a1xPRVpPVDpF0AOR2TRDbXQx7vi/mmHnd4NKKxkj bmNG/tpjjpjuMhKj1geJeG46lcfpnvEUIYkKac1wgED09jcFhZDdtKV3f4VWUw+U ntZLMIr1jZQn70HyVvSa8VvcFTchpC6+fE9ll0D6Bb7Q9LD1rfs9SidGwX27BH05 dx+aY1H9v8GTRHHwXrpvUP+VsTfH2puS8Kv7awIDAQABAoIBAHc2NTxy48bvwX+Z wrPE+lZCLrzFm7VKjkELFU60oG7TrKhIHRlnV96oYzFLxp3tKhQuhdeYOoYAYQef Ypm/n1/7NKadRIf+ODEjvmMHEmlSaRUm8hOexPfqlSwqOeFWdm4xrMv17m/TXTz2 /y0QTnnuy+z4hyBFQyGe9OLQKDkDvXpbXqIrAK3kSuUeyQSZm1Ifq6WEQ/cRmMkd bmjPbZ+QOeg2vvnuwQLNooANEVd//cT9M5vK+iiP6MvNz3IEqBqn4ZcOjqhfLQ7V w2G09Ge1SL/v0cG9weSM6nsdEFxsKM7S3Ybtz6LMpbVC2WX94zyWaCJXRdbHzFzM D8NzerkCgYEA41B5QETnLaoQrEm6rsKbO19p8Ha0cNTP4Ybk/gk+qk7LLBcT1Mze vOfgV2adAkMSr78hF+MHjn2DgnCEiFdbMZLj6VRobzLWvVLaIEERkmJtQV9ef1GP C2EzyTxsFBXNBpGDLOREbiG8euGWjpvU8wvj5yUGIWORzZWUaqrtTV0CgYEAzTe0 eZIGRW0w4y0YGr4FaDzxejzkMK7l0kfJ7qNaPMOdTzKRqV4TM4karClvMKI5kuLZ MpZzUVotMfkqqfQsmWXyZXGBkai9rwrygP1HsC1rSFGusCV6m71axZXZ8GEimnVI kEqvPGvtdW8Z3CpSel5AHC24sYWmrOPQaEPQl2cCgYBQr/0KOisRQ3+9mEJCzGNL tPem2ov8TR4pQLfCEMgErgliciKg88PQrEIu5Aaxidt1NNPrZbQF+TmYMJZqyw9c znZGGackaZheBa3VqyMwoe2EOfUSHoI3GN7H/MGkc4SeY0J7yd8cdK8xsye9IUV6 rGrOXo8JhQ15OzI+lsO7JQKBgQC4IM0Lbxu1Wz1L9//yrqBHYLcBiHTtwV9vhv4F 4gdrEdCpaKQNJN1xlgiahCrBpiymQGfE3fzl91Upy3ieOPlzQWd14Zvxx0c6MUZY ueiCiJ4Dq1ZjsZ0K86DoO4XqCh10HNtYq8oDGotanK7FPiv2o24+Wj+m+FYONfGe O4qC7QKBgQDclDo5hOyDIaIm/qvq00ZAIudXcoZeKqdjnfXWC2tYB97guqXZPnFa zE1rstdDO1c8OTZ1Av1VmnI5dI1OUeGZA6nxol6m1LbMfyME/7nQYW+UBCVLqtTx NY75jbQrg1BTfEGSm9pujsEhVGdK3JiQHbaiw/q5p74dKjlL4HF8Kg== -----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 } fmt.Println("%s is:", pubenctypt) pridecrypt, err := gorsa.PriKeyDecrypt(pubenctypt,Pirvatekey) if err != nil { return err } fmt.Println("%s is:", pridecrypt) 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 }