有一个第三方代码,它以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”吗?
答案 0 :(得分:0)
如果您的第三方代码以字节数组的形式返回您的字符串,为什么再次将其转换为字节数组?
现在我把它转换为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”。
答案 1 :(得分:0)
对不起伙计们,从Thirdparty代码返回的密码是加密的,我想我们不能解密它。相反,要在本地存储它,我将需要存储加密的表单。 感谢