Ich verschlüsselte eine Zeichenfolge in Node.js wie folgt.Wie entschlüssele ich eine AES256-Bitchiffre in Golang, die in Nodejs verschlüsselt wurde?
Ich bemerkte, dass ein Puffer in Nodejs wie hex ist, aber alle 2 aufeinander folgenden Zeichen paaren. Also, die Länge ist die Hälfte von allem, was herauskommen wird, wenn ich es in ein Sechseck verwandle.
Beispiel:
Puffer:
<Buffer c3 80 36 f6 51 57 cb 6d b0 e8 fd 85 5a a2 8a da 07 4b e7 19 17 d1 c8 ee dc 2a e4 d8 5e 3c 9d a6>
Hex:
c38036f65157cb6db0e8fd855aa28ada074be71917d1c8eedc2ae4d85e3c9da6
Jetzt Der Schlüssel ich in aes256 verwenden, können nicht 64 der Länge Hier Pufferlänge ist 32 und Hex-Länge ist 64.
Ich möchte diese Chiffre in Golang entschlüsseln und ich muss diesen Schlüssel und iv t verwenden o es entschlüsseln.
AES in Golang dauert eine Länge abhängig von der Größe des Schlüssels und wenn es einen Schlüssel der Länge 64 sieht, wird der Fehler Invalid key length
ausgegeben.
Wie kann ich es in Golang entschlüsseln? Es ist mein aktuelles Programm in go: https://play.golang.org/p/SoXOz3XIPK
package main
import (
"crypto/aes"
"crypto/cipher"
"fmt"
"log"
)
func main() {
encKey := "c38036f65157cb6db0e8fd855aa28ada074be71917d1c8eedc2ae4d85e3c9da6"
iv := "79b67e539e7fcaefa7abf167de5c06ed"
cipherText := "c02eccfc514a0b7fae830586dd56e0fcebb81fc49f41fa6dedf099c3645793bef7ec7075eca30063f9c0ef395d5ee2d44e4f3490114280abb7cf86d6eb525e2ec9bd2b781388986480f8b3df95f7b10e"
block, err := aes.NewCipher([]byte(encKey))
if err != nil {
log.Fatalf("%s", err)
}
decrypter := cipher.NewCFBDecrypter(block, []byte(iv))
decrypted := make([]byte, 1000)
decrypter.XORKeyStream(decrypted, []byte(cipherText))
fmt.Printf("%s\n", string(decrypted))
}
Wie wird diese zwischen Knoten geteilt "Puffer" und gehen? – GPX
@GPX Es ist nicht. Ein Cookie wird in nodejs so verschlüsselt und ich muss es in golang entschlüsseln, damit ich die darin gespeicherten Daten lesen kann. –
Der Wert eines Cookies ist im Wesentlichen eine Zeichenfolge. Was ist seine Länge? – GPX