1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package utils
- import (
- "crypto/rand"
- "crypto/rsa"
- "crypto/x509"
- "encoding/base64"
- "encoding/pem"
- "fmt"
- )
- type RSA struct {
- }
- // 创建私钥
- var privateKey, _ = rsa.GenerateKey(rand.Reader, 2048)
- // 私钥解密
- func (r *RSA) Encryption(password string) string {
- encrypted, _ := base64.StdEncoding.DecodeString(password)
- decryptedText, err := rsa.DecryptPKCS1v15(rand.Reader, privateKey, encrypted)
- if err != nil {
- fmt.Println("Failed to decrypt data:", err)
- return ""
- }
- return string(decryptedText)
- }
- // 返回公钥
- func (r *RSA) ReturnPublicKey() string {
- publicKey := &privateKey.PublicKey
- publicKeyDer, err := x509.MarshalPKIXPublicKey(publicKey)
- if err != nil {
- fmt.Println("Failed to convert public key to DER format:", err)
- return ""
- }
- publicKeyPem := &pem.Block{
- Type: "PUBLIC KEY",
- Bytes: publicKeyDer,
- }
- publicKeyPemBytes := pem.EncodeToMemory(publicKeyPem)
- return string(publicKeyPemBytes)
- }
|