簡體   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