RSA加密與解密
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。**RSA加密與解密** **[產生RSA密鑰](https://studygolang.com/articles/12219)**````golangpackage cryptoimport ("crypto/rand""crypto/rsa""crypto/x509""encoding/pem""errors""io/ioutil")func RsaEncrypt(origData []byte) ([]byte, error) {publicKey, err := ioutil.ReadFile("public.pem")if err != nil {return nil, err}block, _ := pem.Decode(publicKey)if block == nil {return nil, errors.New("public key error")}pubInterface, err := x509.ParsePKIXPublicKey(block.Bytes)if err != nil {return nil, err}pub := pubInterface.(*rsa.PublicKey)return rsa.EncryptPKCS1v15(rand.Reader, pub, origData)}func RsaDecrypt(ciphertext []byte) ([]byte, error) {privateKey, err := ioutil.ReadFile("private.pem")if err != nil {return nil, err}block, _ := pem.Decode(privateKey)if block == nil {return nil, errors.New("private key error!")}priv, err := x509.ParsePKCS1PrivateKey(block.Bytes)if err != nil {return nil, err}return rsa.DecryptPKCS1v15(rand.Reader, priv, ciphertext)}````385 次點擊