v0.0.581
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 3m39s
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 3m39s
This commit is contained in:
24
langext/base64.go
Normal file
24
langext/base64.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package langext
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// DecodeBase64Any decodes a base64 encoded string
|
||||
// Works with all variants (std, url, imap), padded and unpadded and even ignores linrebreaks and indents
|
||||
func DecodeBase64Any(data string) ([]byte, error) {
|
||||
|
||||
data = strings.ReplaceAll(data, "\n", "") // remove linebreaks and indents
|
||||
data = strings.ReplaceAll(data, "\t", "") // remove linebreaks and indents
|
||||
data = strings.ReplaceAll(data, " ", "") // remove linebreaks and indents
|
||||
|
||||
data = strings.ReplaceAll(data, ",", "/") // base64_imap --> base64_std
|
||||
|
||||
data = strings.ReplaceAll(data, "_", "/") // base64_url --> base64_std
|
||||
data = strings.ReplaceAll(data, "-", "+") // base64_url --> base64_std
|
||||
|
||||
data = strings.ReplaceAll(data, "=", " ") // no padding
|
||||
|
||||
return base64.RawStdEncoding.DecodeString(data)
|
||||
}
|
Reference in New Issue
Block a user