[英]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,\\ a2Ԋ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.