相关疑难解决方法(0)

C# 将十六进制值转换为 UTF8 和 ASCII

我正在尝试将字符串中的十六进制值转换为 ASCII 值和 UTF8 值。但是当我执行以下代码时,它会打印出我作为输入给出的相同十六进制值

string hexString = "68656c6c6f2c206d79206e616d6520697320796f752e";
System.Text.UTF8Encoding  encoding=new System.Text.UTF8Encoding();
byte[] dBytes = encoding.GetBytes(hexString);

//To get ASCII value of the hex string.
string ASCIIresult = System.Text.Encoding.ASCII.GetString(dBytes);
MessageBox.Show(ASCIIresult, "Showing value in ASCII");

//To get the UTF8 value of the hex string
string utf8result = System.Text.Encoding.UTF8.GetString(dBytes);
MessageBox.Show(utf8result, "Showing value in UTF8");
Run Code Online (Sandbox Code Playgroud)

c# decode visual-studio-2010

4
推荐指数
1
解决办法
1万
查看次数

如何将包含十六进制对的字符串转换为字节?

我有一个包含十六进制值的字符串.现在我需要包含十六进制的字符串的内容作为字节变量.如何在不更改十六进制值的情况下执行此操作?

c# string hex byte

3
推荐指数
1
解决办法
1773
查看次数

加密和解密

我想使用SHA1进行加密.我的代码是

public static string EncryptPassword(string password)
{
    try
    {
        SHA1 sha1 = new SHA1Managed();
        var bytehash = sha1.ComputeHash(new MemoryStream(new ASCIIEncoding().GetBytes(password)));
        var stringhash = new ASCIIEncoding().GetChars(bytehash).ToString();

        return stringhash;
    }
    catch (Exception ex)
    {
        // Some Exception....
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

它不起作用.它只返回System.Char [].我在这做错了什么

c# encryption sha1

3
推荐指数
1
解决办法
326
查看次数

如何将十六进制字符串转换为普通文本字符串 C#

我们有一个 keyMaterial 十六进制字符串。看起来像这样

453F1287225ED9971D389A35F8D1032E7748DD0B88302F7C6C194626D4C8659B000000000E800000000200002000000047C2CA7B9A1F1C343CA228CC314A42F0 63A240E17624F886AF6CE9A135CAF65310000000D30489E536548F129E43240A26344811400000009EE2F5549B1447548ADADDD60A212C22DC2F9B2DC67D8E567B48B3 847A525244A2F575AAFFB3AECD0385612BE7C38CA403BE6B5DFA8BEDEFBFA35C5ECC1818AB

您可以看到整个文件。我们如何使用 C# 将这个十六进制代码转换为普通文本字符串?我有一些关于 C++ 的例子,但它对我没有帮助。你能给个建议吗?

该字符串的编码是16291388(但这不是问题的解决方案)

c# hex

3
推荐指数
1
解决办法
9935
查看次数

如何将数字转换为十六进制?

给定寄存器中的数字(二进制​​整数),如何将其转换为十六进制ASCII数字字符串?

数字可以存储在存储器中或即时打印,但存储在存储器中并一次打印通常更有效.(您可以修改存储的循环,而不是一次打印一个循环.)

我们能否有效地处理与SIMD并行的所有半字节?(SSE2或更高版本?)

x86 assembly hex simd avx512

3
推荐指数
1
解决办法
342
查看次数

相同的代码在 .net core 和 .net 4.7.2 中给出不同的结果

下面是获取字符串的 Md5 值的以下 C# 代码

using System;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
        var urlPart = "dd5fad78903da9d3ce4905f8e731d6c4ýundefinedý3780534ý5";
        Console.WriteLine("value= " + urlPart);
        var md5val = md5(urlPart, Encoding.Default);
        Console.WriteLine("md5= " + md5val);
    }

    public static string md5(string value, System.Text.Encoding encoding)
    {
        var buffer = encoding.GetBytes(value);
        //Console.WriteLine("buffer= " + BitConverter.ToString(buffer));

        MD5 md5Hasher = MD5.Create();
        byte[] data = md5Hasher.ComputeHash(buffer);
        StringBuilder sBuilder = new StringBuilder();
        for (int i = 0; i < data.Length; i++)
        {
            sBuilder.Append(data[i].ToString("x2")); …
Run Code Online (Sandbox Code Playgroud)

c# .net-core .net-4.7.2

3
推荐指数
1
解决办法
102
查看次数

将byte []转换为字符串

如何将字节数组转换为字符串?我需要获取原始内容,例如"96 = A8 = FC- = A8 = FE",但是当我使用说Encoding.UTF8.GetString(字节)时,它返回"96 - ".谢谢!

.net c#

2
推荐指数
1
解决办法
4412
查看次数

字符串到 byte[] 数组,反之亦然

我正在实现自己的 AES 代码,在解密过程中遇到一些问题。

byte[] output;
output = Encrypt(EncryptBufferInput);//encrypt "12",output[] is 300532188151293E4ACA3BA529B821C1
str.Append(Encoding.ASCII.GetString(output) );

output = Decrypt(DecryptBufferInput);//in hex, DecryptBufferInput should be "300532188151293E4ACA3BA529B821C1"
str.Append(Encoding.ASCII.GetString(output));//does not decrypt back to "12"
Run Code Online (Sandbox Code Playgroud)

因此,如果我尝试加密“12”,它会给出十六进制形式的“300532188151293E4ACA3BA529B821C1”值。当我尝试将其解密回“12”时,它给了我一个错误的值,因为 DecryptBufferInput 不是“300532188151293E4ACA3BA529B821C1”,而是其他一些值......只有前几个值是相同的。EncryptBufferInput 和 DecryptBufferInput 都是 byte[] 数组,我使用 Encoding.ASCII.GetBytes(string) 用相应的字符串(要加密的字符串或要解密的字符串)填充字节数组。我究竟做错了什么??

c# encryption cryptography aes

2
推荐指数
1
解决办法
1651
查看次数

SHA计算随机长度的哈希值

最近,我注意到SHA算法计算随机长度的哈希值.

HashAlgorithm provider;
provider = HashAlgorithm.Create("System.Security.Cryptography.SHA256");

while(!stackoverflow) {
    Console.WriteLine(Encoding.UTF8.GetString(
         provider.ComputeHash(Encoding.UTF8.GetBytes(
              (new Random()).Next().ToString())))
         .Count().ToString());
}
Run Code Online (Sandbox Code Playgroud)

输出:

29
29
30
29
29
30
29
31
29
29
32
29
30
28
...
Run Code Online (Sandbox Code Playgroud)

是否可以设置最大哈希长度?(可能使哈希无用..)或者我在计算哈希值时做错了什么?编码?

编辑:

上面的代码片段就是一个例子.我最终需要的是一个接受字符串的方法,计算字符串的散列并返回它.HashAlgorithm.ComputeHash取字节并返回字节,所以我使用UTF8.GetBytes()/ UTF8.GetString()进行转换,这似乎是一个巨大的错误.

c# random hash cryptography sha

2
推荐指数
1
解决办法
400
查看次数

C#和Java中的十六进制到字节数组给出了不同的结果

首先,对于长篇文章感到抱歉,我想包括我的所有想法,以便你们更容易找到我的代码有什么问题.

我想将一个Hex字符串从C#应用程序传输到Java应用程序.但是,当我在两种语言中将相同的十六进制值转换为字节数组时,输出是不同的.

例如,相同的十六进制值给出

  [101, 247, 11, 173, 46, 74, 56, 137, 185, 38, 40, 191, 204, 104, 83, 154]
Run Code Online (Sandbox Code Playgroud)

在C#和

  [101, -9, 11, -83, 46, 74, 56, -119, -71, 38, 40, -65, -52, 104, 83, -102]
Run Code Online (Sandbox Code Playgroud)

在Java中

以下是我在C#中使用的方法:

public static string ByteArrayToHexString(byte[] byteArray)
{
    return BitConverter.ToString(byteArray).Replace("-",""); //To convert the whole array
}

public static byte[] HexStringToByteArray(string hexString)
{

    byte[] HexAsBytes = new byte[hexString.Length / 2];
    for (int index = 0; index < HexAsBytes.Length; index++)
    {
        string byteValue = hexString.Substring(index * …
Run Code Online (Sandbox Code Playgroud)

c# java hex byte bytearray

2
推荐指数
1
解决办法
3390
查看次数