Hex hodnoty do Base64 není ve správném formátu VB.net

0

Otázka

Snažím se převést řetězec na hex a pak do Base64, je to práce, ale ale base64value stále není odpovídající - Vs 2008(.net 3.5) a vs 2019 (.net 4.6)

tento můj kód --HEX string

Dim QrCodeHex as string ="010c426f6273205265636f726473020f3331303132323339333530303030330314323032322d30342d32355431353a33303a30305a0407313030302e303005063135302e3030"
dim QrCodeBase64En as string = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(QrCodeHex))

Já jsem dostal tento výsledek je špatně

MDEwYzQyNmY2MjczMjA1MjY1NjM2Zjcynjq3mzaymgyzmzmxmzazmtmymzizmzm5mzmzntmwmzazmdmwmzmwmze0mzizmdmymziyzdmwmzqyzdmymzu1ndmxmzuzytmzmzazytmwmza1yta0mdczmtmwmzazmdjlmzazmda1mdyzmtm1mzayztmwmza=

Správný Výsledek je

AQxCb2JzIFJlY29yZHMCDzMxMDEyMjM5mzuwmdawmwmumjaymi0wnc0ynvqxntozmdowmfoebzewmdaumdafbje1mc4wma==

jak mám dostat to.

base64 hex vb.net
2021-11-23 14:36:04
2

Nejlepší odpověď

3

System.Text.Encoding.UTF8.GetBytes převede (regular) řetězec bajtové pole. Nicméně, ve vašem případě, že nemáte pravidelný řetězec ("Bobs Záznamy..."), ale hexadecimální reprezentace byte array ("010c426f62..."). Takže budete muset převést hexadecimální reprezentace do bajtové pole jako první:

Dim QrCodeHex As String = "010c426f6273205265636f726473020f3331303132323339333530303030330314323032322d30342d32355431353a33303a30305a0407313030302e303005063135302e3030"
    
' Hex to bytes
Dim bytes As Byte() = BigInteger.
    Parse(QrCodeHex, NumberStyles.AllowHexSpecifier).
    ToByteArray().Reverse().ToArray()
    
Dim QrCodeBase64En As String = Convert.ToBase64String(bytes)
    
Console.WriteLine(QrCodeBase64En)

(housle)

Poznámka: jsem jen používá BigInteger pro konverzi, protože to bylo nejvíce kompaktní způsob, jak to udělat tak, aniž by se spoléhat na .NET 5+ funkce. ( Reverse je nutný, protože, ve výchozím nastavení, je výstup počet jako little-endian.) Viz tato otázka se po alternativách: Jak lze převést hex řetězec bajtové pole?

2021-11-23 15:21:04

díky ... to funguje teď
SAIJAN KP
0

jak mohu získat tento text? "010c426f6273205265636f726473020f3331303132323339333530303030330314323032322d30342d32355431353a33303a30305a0407313030302e303005063135302e3030"

2021-12-10 15:02:30

Tak, jak je napsaná, vaše odpověď je nejasná. Prosím, upravit, přidat další podrobnosti, které ostatním pomohou pochopit, jak se tohle řeší otázku, zeptal se. Můžete si najít více informací o tom, jak psát dobré odpovědi v centru nápovědy.
Community

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................