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详细信息。为什么要关心字节是否已签名?
从文件中读取用户名和密码[重复] - pythonThis 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中将华氏度转换为摄氏温度[重复] - javaThis question already has answers here: Double value returns 0 [duplicate] (3个答案) 6年前关闭。 我正在尝试将华氏度转换为摄氏温度。现在当我使用此错误时:double fahrenheit=input.nextDouble(); double celsius= ( **5** /…
美元符号($)在printf格式的字符串中有什么作用? [重复] - javaThis question already has answers here: Selecting parameters in String.format() [duplicate] (3个答案) 4年前关闭。 我正在尝试使用printf语句在Java中进行格式化,例如此网页:Click Here。但是我只是不知道$符号的目的是什么。有人可以向我解释一下吗?…
从long到int,如果long值足够小以适合int [重复] - javaThis 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:检查新文件是否在文件夹中[重复] - pythonThis question already has answers here: How do I watch a file for changes? (23个答案) 3年前关闭。 我是python的新手,但是我尝试创建一个自动化过程,其中我的代码将侦听目录中的新文件条目。例如,某人可以手动将zip文件复制到一个特定的文件夹中,并且我希望我的代码能够在文件完全…