[英]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.