2012-05-29 10 views
6

私は塩漬けされたハッシュでパスワードを暗号化するクラスを持っています。暗黙的にタイプ文字列をバイト[]に変換できません

しかし、私はクラスにヌルを渡したい場合は、私は次のエラーを取得する:ここでCannot implicitly convert type string to byte[]

は、クラスコードは次のとおりです。

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

私はクラスを使用すると、私はエラーを取得します: "暗黙のうちにあなたの 『ComputeHash』メソッドは文字列を返し、あなたはバイトaに、この戻り値を代入しようとしているので、これは[]」

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

'string'は' byte [] 'に変換可能ですか? –

答えて

0

ComputeHash関数の戻り値の型は文字列です。関数の結果をbyte []であるencdsに代入しようとします。コンパイラは、文字列からバイト[]への暗黙的な変換がないので、この不一致をあなたに通知します。

+0

これは何時間も過ぎると起こります。 – MataHari

14

バイトをタイプ文字列を変換できません。とrray;

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

例えばASCIIまたはUTF8などバイト、などの文字列を表すのに異なるエンコーディングの数が存在するので、バイトを文字列には暗黙 converstion []はありません。

明示的にのように適切なエンコーディングクラスを使用してバイトを変換する必要があります。

string x = "somestring"; 
byte[] y = System.Text.Encoding.UTF8.GetBytes(x); 
関連する問題