Cannot implicitly convert type string to byte[]
我有一个用盐散列加密密码的类。
但是如果我想向类传递一个空值,我会得到以下错误:
这是课程代码:
1 2 3 4 5 6 7 8 | public class MyHash { public static string ComputeHash(string plainText, string hashAlgorithm, byte[] saltBytes) { Hash Code } } |
使用类时,会得到错误:"无法将类型字符串隐式转换为byte[]"
1 2 3 | //Encrypt Password byte[] NoHash = null; byte[] encds = MyHash.ComputeHash(Password,"SHA256", NoHash); |
这是因为您的"computehash"方法返回一个字符串,而您正试图将此返回值赋给一个字节数组;
1 | byte[] encds = MyHash.ComputeHash(Password,"SHA256", NoHash); |
字符串到字节[]没有隐式转换,因为存在许多不同的编码来将字符串表示为字节,例如ascii或utf8。
您需要使用类似这样的适当编码类显式地转换字节;
1 2 | string x ="somestring"; byte[] y = System.Text.Encoding.UTF8.GetBytes(x); |
您的