繁体   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