golang实现md5、RSA、base64 加密解密
发布时间:2020-12-16 18:14:47 所属栏目:大数据 来源:网络整理
导读:package toolsimport ("crypto/md5""crypto/rand""crypto/rsa""crypto/x509""encoding/base64""encoding/hex""encoding/pem""errors")const (base64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")var coder = base64.NewEnco
package tools import ( "crypto/md5" "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/base64" "encoding/hex" "encoding/pem" "errors" ) const ( base64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ) var coder = base64.NewEncoding(base64Table) func Base64Encode(src []byte) []byte { return []byte(coder.EncodeToString(src)) } func Base64Decode(src []byte) ([]byte,error) { return coder.DecodeString(string(src)) } func RsaEncrypt(origData []byte,publicKey string) ([]byte,error) { block,_ := pem.Decode([]byte(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,privateKey string) ([]byte,_ := pem.Decode([]byte(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) } func Md5Encrypt(data string) string { md5Ctx := md5.New() //md5 init md5Ctx.Write([]byte(data)) //md5 updata cipherStr := md5Ctx.Sum(nil) //md5 final encryptedData := hex.EncodeToString(cipherStr) //hex_digest return encryptedData } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |