Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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# 用C语言将二进制(64)SQL Server数据解析为纯文本#_C#_Json_Api - Fatal编程技术网

C# 用C语言将二进制(64)SQL Server数据解析为纯文本#

C# 用C语言将二进制(64)SQL Server数据解析为纯文本#,c#,json,api,C#,Json,Api,我有一个SQL Server数据库,其中包含一个包含密码的binary(64)列。我正在使用一个C#ASP.NET API查询数据,并将数据作为字符串返回给我的C#代码 在SQL Server中,密码是 0x507572706C6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 在我的C#中,作为字符串的密码是

我有一个SQL Server数据库,其中包含一个包含密码的
binary(64)
列。我正在使用一个C#ASP.NET API查询数据,并将数据作为字符串返回给我的C#代码

在SQL Server中,密码是

0x507572706C6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
在我的C#中,作为字符串的密码是

UHVycGxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
在纯文本中,密码是:
Purple

我手头的问题是如何使用C#来“解析”返回的字符串并将其转换为可读格式

我尝试了下面的语法,但我得到一个错误。。。将哈希密码“解析”为纯文本的正确方法是什么

找不到任何可识别的数字

公共类SQLData
{
公共字符串传递{get;set;}
}
公共静态字符串二进制字符串(字符串数据)
{
List byteList=新列表();
对于(int i=0;i
首先,在数据库中以纯文本形式存储密码是一个糟糕的主意。也就是说,数据库中的二进制数据列是十六进制的(以16为基数)

在您的示例中,要转换

0x507572706C6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
要在C#中使用
Purple
,您可以编写:

Encoding.UTF8.GetString(yourByteArrayVariable).TrimEnd(\'0')

TrimEnd
是必需的,因为您的列是固定宽度的二进制而不是varbinary。因此,它用空字符(
0
)右键填充并且应该从结果字符串中删除。

您是在询问如何解码SQL server字符串还是c字符串?c字符串看起来像Base64,所以请看…是的,它是Base64。转到并解码,您将得到“紫色…”。。。“附加了一堆空字符。@dbc-这正是我需要的!!!非常感谢你!这一切都是关于知道要搜索什么!我得到一个编译错误,无法从字符串转换为字节[]。您从数据库返回的数据类型可能不是
字节[]
,可能是字符串。你能编辑你的文章,包括你的代码,显示你是如何从数据库中获取列的吗?如果你看我的类SQLData,我将它转换成C中的字符串数据类型#
Encoding.UTF8.GetString(yourByteArrayVariable).TrimEnd(\'0')