所以我有一个字符串
string enc = ""hx0.+dhx0-pdhx0pzdhx0xx";
已加密,解密后具有十六进制值时,起始值为 “ 0xfc,0xe8,0x82,0x00”
然后这个
string decrypted = encryptDecrypt(enc);
然后这个 然后我在每个逗号后用split命令将其分割 string []嗨=已解密.Split(',');
当我检查使用此代码时
foreach (var item in hi )
{
Console.WriteLine(item.ToString());
}
在它的旁边显示所有十六进制 我想把字符串数组值 0xfc,0xe8,0x82,0x00和更多的字节数组值是 0xfc,0xe8,0x82,0x00也没有其他值
答案 0 :(得分:1)
是唯一的字符串,还是该值改变了?您的数组需要动态吗?
let domainName = ""
let hotspotSettings = NEHotspotHS20Settings.init(domainName: domainName, roamingEnabled: true)
let hotspotEAPSettings = NEHotspotEAPSettings()
hotspotEAPSettings.username = *****
hotspotEAPSettings.password = ******
hotspotEAPSettings.isTLSClientCertificateRequired = true
hotspotEAPSettings.supportedEAPTypes = [21]
hotspotEAPSettings.trustedServerNames = [""]
hotspotEAPSettings.ttlsInnerAuthenticationType = .eapttlsInnerAuthenticationMSCHAPv2
print(hotspotEAPSettings)
let hotspotConfig = NEHotspotConfiguration.init(hs20Settings: hotspotSettings, eapSettings: hotspotEAPSettings)
print( hotspotConfig.ssid)
NEHotspotConfigurationManager.shared.apply(hotspotConfig) {[unowned self] (error) in
print(error?.localizedDescription as Any)// gives Error Domain=NEHotspotConfigurationErrorDomain Code=5 "invalid EAP settings."
print(error as Any)
if let error = error {
self.showError(error: error)
} else {
self.showSuccess()
}
}
答案 1 :(得分:0)
要从字符串转换为字节数组,可以使用GetBytes方法:
System.Text.Encoding.ASCII.GetBytes(item);
答案 2 :(得分:0)
答案 3 :(得分:0)
对于某些不是Ascii的文本,可以使用Utf-8将字符串转换为字节。
System.Text.Encoding.UTF8.GetBytes(item);
答案 4 :(得分:0)
样本输入:
String[] hi = "00,01,fe,ff".Split(',');
使用lambda函数进行转换以将每个十六进制字符串转换为字节:
Byte[] b = Array.ConvertAll(hi, h => Convert.ToByte(h, 16));
如果您想要其他类型的代表:
Byte[] b = Array.ConvertAll(hi, HexToByte);
private Byte HexToByte(String h)
{
return Convert.ToByte(h, 16);
}
相同,但具有表达功能:
Byte[] b = Array.ConvertAll(hi, HexToByte);
private Byte HexToByte(String h) => Convert.ToByte(h, 16);
或者是另一种代表:
Converter<String, Byte> hexToByte = h => Convert.ToByte(h, 16);
Byte[] b = Array.ConvertAll(hi, hexToByte);
Array.ConvertAll
在做真实的工作。从十六进制转换要么是可以直接进行内联的琐碎想法,要么是可以给出名称和/或完整实现模块的重要想法。