Base64字符串编码包含+,/和=而不是A,B,C

时间:2018-02-01 16:10:13

标签: c# encoding base64

我需要将以下转换应用于字符串:

  • 转换byte []
  • 中的字符串
  • 应用sha256功能
  • 将结果编码为base64

我写了以下代码:

string codeRaw = "C0643778W.EUC06AG978W.EUFWELP2014-11-2153.50000GBP24.00000MWh/h10YCB-EUROPEU--12015-01-012015-01-31";
byte[] utiCodeByteArr = Encoding.UTF8.GetBytes(codeRaw);
byte[] hashByteArr = new SHA256Managed().ComputeHash(utiCodeByteArr);
string hash = Convert.ToBase64String(hashByteArr)

它有效,但结果与我应该得到的有点不同:字符串包含字符'+','/'和'='而不是'A','B'和'C'。

"qWAIh1CgYAuvoRTGcvXKLBHC9UxRunSBRjRXlqhYh6gC" //expected result
"qW+Ih1CgYAuvoRTGcvXKLBHC9UxRunS/RjRXlqhYh6g=" //got result

我用替换

解决了
 string hash = Convert.ToBase64String(hashByteArr)?.Replace("+", "A")?.Replace("/", "B")?.Replace("=", "C");

有一种更好的方法来获得正确的字符串而不使用替换? 我不喜欢他们。

带有要求的手册说:“使用的API是.NET框架提供的API”,但它不包含源代码:也许有办法立即获得ABC字符,但我想念它

感谢。

1 个答案:

答案 0 :(得分:0)

提供商向我发送了源代码:我做了替换。

他们忘了在手册中写下这些信息。