ホームページ  >  記事  >  バックエンド開発  >  asn のアンマーシャリングに失敗しました

asn のアンマーシャリングに失敗しました

WBOY
WBOY転載
2024-02-14 16:27:081181ブラウズ

解组 asn 失败

php エディターの Xigua が、「アンマーシャリングに失敗しました」に関する質問を共有します。 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)
}

アンマーシャリングしようとしましたが、次のエラーが発生しました:

リーリー

誰か助けてくれませんか? Thanks

Solution

0x020105 は整数 5 をエンコードします (https://www.php.cn/link/8ae7733f9bc11275e8d0a0fdabe5be0a を参照)。整数フィールドを持つ構造体ではなく整数にアンマーシャリングする必要があります:

リーリー

および SimpleStruct{Value: 5}0x3003020105:

にマーシャリングされます リーリー

以上がasn のアンマーシャリングに失敗しましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。