我需要将以下转换应用于字符串:
我写了以下代码:
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字符,但我想念它
感谢。
答案 0 :(得分:0)
提供商向我发送了源代码:我做了替换。
他们忘了在手册中写下这些信息。