字符串转换为字节[]-C#的行为类似于Java [重复] - c#

This question already has answers here:

Closed 8 years ago.

Possible Duplicate:
.NET String to byte Array C#

我需要将字符串转换为byte []。如果是那样的话,任务将很简单。我需要用C#编写它,但是我需要它像Java一样工作。

我看到两个问题:

字节序:Java在内部将事物存储为Big Endian,而.NET默认为Little Endian。

签名:C#字节是无符号的。 Java字节已签名。

如何获取UTF-8字符串,并获得与Java匹配的byte []。

为了提供更多的上下文,我有这两个函数(一个在Java中,一个在C#中),它们创建不同的哈希值,我怀疑这是由于.net与Java中字节表示形式的不同所致。
Java:

String key = "test";
String data = "test";
String algorithm = "HmacSHA1";
Charset charset = Charset.forName("utf-8");
SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), algorithm);
Mac mac = Mac.getInstance(algorithm);
mac.init(signingKey);
return new String(Base64.encodeBase64(mac.doFinal(data.getBytes(charset))), charset);

C#:

string key = "ed2ee2e0-65c1-11de-8a39-0800200c9a66";
string data = "test";
byte[] aKey = Encoding.UTF8.GetBytes(key);
byte[] aData = Encoding.UTF8.GetBytes(data);
HMACSHA1 oEncode = new HMACSHA1(aKey);
byte[] aBytes = oEncode.ComputeHash(aData);
return Convert.ToBase64String(aBytes);

c#参考方案

只需使用:

byte[] bytes = Encoding.UTF8.GetBytes("SomeString");

但是有一些注意事项:

.NET中没有“ UTF-8”字符串之类的东西:所有字符串都是
Unicode(UCS-2)。
没有大尾数/小尾数字节顺序
在UTF-8中,字节顺序由格式定义。校验
RFC-2279详细信息。

为什么要关心字节是否已签名?

从文件中读取用户名和密码[重复] - python

This question already has answers here: How to read a file line-by-line into a list? (28个答案) 2年前关闭。 如何在Python中逐行读取文本(例如用户名和密码)?例如,我可以在shell / bash中实现此目的:#!/bin/bash AUTH='/aut…

在Java中将华氏度转换为摄氏温度[重复] - java

This question already has answers here: Double value returns 0 [duplicate] (3个答案) 6年前关闭。 我正在尝试将华氏度转换为摄氏温度。现在当我使用此错误时:double fahrenheit=input.nextDouble(); double celsius= ( **5** /…

美元符号($)在printf格式的字符串中有什么作用? [重复] - java

This question already has answers here: Selecting parameters in String.format() [duplicate] (3个答案) 4年前关闭。 我正在尝试使用printf语句在Java中进行格式化,例如此网页:Click Here。但是我只是不知道$符号的目的是什么。有人可以向我解释一下吗?…

从long到int,如果long值足够小以适合int [重复] - java

This question already has answers here: Safely casting long to int in Java (10个回答) 7年前关闭。 如果long值足够小以适合int,可以自动将long转换为int吗?long i=1; int j=i; //Error Type mismatch: cannot convert…

Python:检查新文件是否在文件夹中[重复] - python

This question already has answers here: How do I watch a file for changes? (23个答案) 3年前关闭。 我是python的新手,但是我尝试创建一个自动化过程,其中我的代码将侦听目录中的新文件条目。例如,某人可以手动将zip文件复制到一个特定的文件夹中,并且我希望我的代码能够在文件完全…