簡體   English   中英

在C#中將HEX字符串轉換為它的實際字符串值

[英]Convert HEX string to it's actual string value in c#

有一個第三方代碼,它以byte []數組的形式返回字符串“ Nmimtech1”。

    object password1 = pProps.GetProperty("PASSWORD"); 

(它的第三方ESRI庫代碼,因此不必理會)現在,我將其轉換為byte []

    byte[] pswrdbyte = password1 as byte[]

該字節數組的內容是

        [0] 2   byte
    [1] 0   byte
    [2] 0   byte
    [3] 0   byte
    [4] 20  byte
    [5] 0   byte
    [6] 0   byte
    [7] 0   byte
    [8] 200 byte
    [9] 115 byte
    [10]    39  byte
    [11]    180 byte
    [12]    150 byte
    [13]    100 byte
    [14]    74  byte
    [15]    44  byte
    [16]    7   byte
    [17]    215 byte
    [18]    137 byte
    [19]    50  byte
    [20]    212 byte
    [21]    138 byte
    [22]    56  byte
    [23]    241 byte
    [24]    134 byte
    [25]    51  byte
    [26]    75  byte
    [27]    0   byte

現在,我嘗試了各種方法將其轉換回“ Nmimtech1

    string str = System.Text.Encoding.ASCII.GetString(pswrdbyte);

返回“ \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0?s'?? dJ,\\ a ?? 2 ?? 8 ?? 3K \\ 0”

    string str1 = System.Text.Encoding.Unicode.GetString(pswrdbyte);

返回“ \\ 0 \\ 0珈됧撖ⱊ휇㊉諔㎆K”

    string str2 = System.Text.Encoding.UTF8.GetString(pswrdbyte);

返回“ \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\0.s' dJ,\\ a׉2Ԋ8 3K\\ 0”

    string str3 =  System.Text.Encoding.UTF32.GetString(pswrdbyte);

傳回「 」

    string str4 = System.Text.Encoding.UTF7.GetString(pswrdbyte);

返回“ \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0Ès'´dJ,\\ a×2Ô8ñ3K\\ 0”

    string str5 = System.Text.Encoding.BigEndianUnicode.GetString(pswrdbyte);

返回“Ȁ\\ 0᐀\\ 0졳➴除䨬ߗ褲풊㣱蘳䬀”

    string str6 = pswrdbyte.ToString();

返回“ System.Byte []”(很奇怪)

    string s  = BitConverter.ToString(pswrdbyte);

返回“ 02-00-00-00-14-00-00-00-C8-73-27-B4-96-64-4A-2C-07-D7-89-32-D4-8A-38-F1- 86-33-4B-00”。 現在這有點道理,但是您能告訴我如何以編程方式將此十六進制字符串轉換回“ Nmimtech1”嗎?

如果您的第三方代碼以字節數組的形式返回字符串,為什么又將其轉換為字節數組?

現在,我將其轉換為byte []:byte [] pswrdbyte = password1 as byte []

        String password1 = "Nmimtech1";
        System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();

        byte[] pswrdbyte = enc.GetBytes(password1);

在此處輸入圖片說明

        string password2 = enc.GetString(pswrdbyte);

password2再次包含“ Nmimtech1”。

抱歉,從第三方代碼返回的密碼已加密,我發現我們無法對其進行解密。 相反,要將其存儲在本地,我將需要存儲加密的表單。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM