Golang-Code-Verschlüsselungsmethode:
DES-Verschlüsselung und -Entschlüsselung
Standardbibliothek crypto/des in Golang Dort ist eine Implementierung von DES, aber die Beschreibung der Golang-Bibliothek ist relativ einfach. Wenn Sie mit den Verschlüsselungsregeln von DES nicht vertraut sind, ist es nicht einfach, den entsprechenden Code zu schreiben Bei der Entschlüsselung zwischen verschiedenen Sprachen mit einem Drittanbieter ist ein Fehler aufgetreten.
Golang bietet standardmäßig den CBC-Modus, daher müssen Sie für den ECB-Modus Ihren eigenen Code schreibenPKCS5Padding und PKCS5Unpadding
func PKCS5Padding(ciphertext []byte, blockSize int) []byte { padding := blockSize - len(ciphertext)%blockSize padtext := bytes.Repeat([]byte{byte(padding)}, padding) return append(ciphertext, padtext...) } func PKCS5Unpadding(origData []byte) []byte { length := len(origData) unpadding := int(origData[length-1]) return origData[:(length - unpadding)] }
block, err := des.NewCipher(key) if err != nil { ... } bs := block.BlockSize() src = PKCS5Padding(src, bs) if len(src)%bs != 0 { .... } out := make([]byte, len(src)) dst := out for len(src) > 0 { block.Encrypt(dst, src[:bs]) src = src[bs:] dst = dst[bs:] } ... }
RSA-Verschlüsselung und -Entschlüsselung
Im Gegensatz zu anderen Sprachen, die standardmäßig über eine Kapselung auf höherer Ebene verfügen, muss Golang nach unterschiedlichen Konzepten kombiniert und gekapselt werdenPEM: endet normalerweise mit .pem. Dateien werden häufig in Schlüsselspeicher- und X.509-Zertifikatsystemen verwendet. Das Folgende ist das PEM-Format unter einem X509-Zertifikat:-----BEGIN CERTIFICATE----- base64 -----END CERTIFICATE-----
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
block, _ := pem.Decode([]byte(key)) if block == nil { // 失败情况 .... } private, err := x509.ParsePKCS8PrivateKey(block.Bytes) if err != nil { ... } h := crypto.Hash.New(crypto.SHA1) h.Write(data) hashed := h.Sum(nil) // 进行rsa加密签名 signedData, err := rsa.SignPKCS1v15(rand.Reader, private.(*rsa.PrivateKey), crypto.SHA1, hashed) ...
Golang-Tutorial.
Das obige ist der detaillierte Inhalt vonKann Golang-Code verschlüsselt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!