>백엔드 개발 >Golang >비정렬화 실패

비정렬화 실패

WBOY
WBOY앞으로
2024-02-14 16:27:081224검색

解组 asn 失败

php 편집기 Xigua는 "unmarshalling asn failed"에 대한 질문을 여러분과 공유하기 위해 왔습니다. 네트워크 통신에서 ASN(Autonomous System Number)은 자율 시스템을 식별하는 데 사용되는 번호입니다. 그러나 ASN을 그룹 해제할 때 그룹 해제가 실패하는 경우가 있습니다. 이는 잘못된 ASN 인코딩 형식, 손상된 ASN 패킷 또는 호환되지 않는 파서로 인해 발생할 수 있습니다. 이 기사에서는 모든 사람이 이 문제를 더 잘 이해하고 해결할 수 있도록 ASN 역마샬링이 실패하는 이유와 해결 방법을 논의합니다.

질문 내용

package main

import (
    "encoding/asn1"
    "fmt"
)

type SimpleStruct struct {
    Value int
}

func main() {
    berBytes := []byte{0x02, 0x01, 0x05}

    var simpleStruct SimpleStruct
    _, err := asn1.Unmarshal(berBytes, &simpleStruct)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Printf("Decoded value: %d\n", simpleStruct.Value)
}

정렬 해제를 시도했지만 다음 오류가 발생했습니다.

으아아아

누구든지 도와줄 수 있나요? 감사합니다

해결 방법

0x020105은 정수 5를 인코딩하므로(https://www.php.cn/link/8ae7733f9bc11275e8d0a0fdabe5be0a 참조) 정수 필드가 있는 구조체가 아닌 정수로 마샬링 해제되어야 합니다.

으아아아

그리고 SimpleStruct{Value: 5} 被编组为 0x3003020105:

으아아아

위 내용은 비정렬화 실패의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제