繁体   English   中英

无法将类型字符串隐式转换为byte []

[英]Cannot implicitly convert type string to byte[]

我有一个用加密哈希加密密码的类。

但是,如果我想将null传递给类,我会收到以下错误: Cannot implicitly convert type string to byte[]

这是类代码:

public class MyHash
{
    public static string ComputeHash(string plainText, 
                            string hashAlgorithm, byte[] saltBytes)
    {
        Hash Code
    }
}

当我使用该类时,我得到错误:“无法将类型字符串隐式转换为byte []”

//Encrypt Password
byte[] NoHash = null;
byte[] encds = MyHash.ComputeHash(Password, "SHA256", NoHash);

这是因为你的'ComputeHash'方法返回一个字符串,你试图将这个返回值赋给一个字节数组;

byte[] encds = MyHash.ComputeHash(Password, "SHA256", NoHash);

字符串到byte []没有隐式转换 ,因为存在许多不同的编码来将字符串表示为字节,例如ASCII或UTF8。

您需要使用适当的编码类显式转换字节,如此;

string x = "somestring";
byte[] y = System.Text.Encoding.UTF8.GetBytes(x);

ComputeHash函数的返回类型是一个string 您尝试将函数的结果分配给encds ,即byte[] 编译器将此差异指向您,因为没有从stringbyte[]隐式转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM