Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#.net中将字符串转换为十六进制_C#_.net - Fatal编程技术网

如何在C#.net中将字符串转换为十六进制

如何在C#.net中将字符串转换为十六进制,c#,.net,C#,.net,我有一个字符串,想在C#.net中将其转换为十六进制 这是我的Eset Nod32密码: "12968" 程序将此密码保存到二进制注册表项中,如下所示: "50 d6 e6 e9 e4 f0 cd f2 63 64" 如果要获取每个数字的十六进制,例如1的十六进制、2的十六进制等,如何在C#?中执行此操作。您可以按以下操作: string input = "12968"; char[] values = input.ToCharArray(); foreach (char letter in

我有一个字符串,想在C#.net中将其转换为十六进制

这是我的Eset Nod32密码:

"12968"
程序将此密码保存到二进制注册表项中,如下所示:

"50 d6 e6 e9 e4 f0 cd f2 63 64"

如果要获取每个数字的十六进制,例如1的十六进制、2的十六进制等,如何在C#?

中执行此操作。您可以按以下操作:

string input = "12968";
char[] values = input.ToCharArray();
foreach (char letter in values)
{
    // Get the integral value of the character. 
    int value = Convert.ToInt32(letter);
    // Convert the decimal value to a hexadecimal value in string form. 
    string hexOutput = String.Format("{0:X}", value);
    Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
}
或者,如果您希望以浮点数的形式获取完整字符串,例如:

string hexString = "12968";
uint num = uint.Parse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier);

byte[] floatVals = BitConverter.GetBytes(num);
float f = BitConverter.ToSingle(floatVals, 0);
Console.WriteLine("float convert = {0}", f);

可以使用以下方法将二进制值写入注册表

static byte[] GetBytes(string str)
{
    byte[] bytes = new byte[str.Length * sizeof(char)];
    System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
    return bytes;
}

RegistryKey rk = Registry.CurrentUser.CreateSubKey("RegistryValueKindExample");
rk.SetValue("BinaryValue", GetBytes("12968"), RegistryValueKind.Binary);

谢谢你,伙计。当我使用你的代码时。“12968”的输出为“3132393638”,但是。我想转换为这种样式“50 d6 e6 e9 e4 f0 cd f2 63 64”。仅通过转换为十六进制无法从您的输入中获取此值(“50 d6 e6 e9 e4 f0 cd f2 63 64”)。在高概率情况下,您的NOD32会对密码进行哈希或加密将
12968
映射到
50 d6 e6 e9 e4 f0 cd f2 63 64
的规则是什么。我看不出有什么关系。你有两个问题,都已经回答了。请使用搜索。看,这显然不是一个简单的关系。十六进制有80位,输入要小得多。这可能是某种杂凑或是阻止你做你想做的事情的东西。我根据你的答案编辑了你的问题。Sinds Nod32没有源代码,我们不知道它如何加密或散列您的密码。这很可能是不可能复制的,除非你有很多时间。谢谢兄弟。但不是这种风格:“50 d6 e6 e9 e4 f0 cd f2 63 64”(这是nod32映射。我的EsetNod32密码是:12968。我导航到Regedit并查看“50 d6 e6 e9 e4 f0 cd f2 63 64”密码值。现在我想设置新密码。但我必须像这样重新创建值。