2012-05-29 6 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'방법은 문자열을 반환하기 때문에 [] "

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

'string'은'byte []'로 변환 될 수 있습니까? –

답변

0

ComputeHash 함수의 반환 유형은 문자열입니다. 함수의 결과를 byte [] 인 encds에 할당하려고합니다. 컴파일러는이 불일치를 사용자에게 알려줍니다. 문자열에서 바이트 [] 로의 암시 적 변환이 없기 때문입니다.

+0

이것은 너무 많은 시간을 할 때 일어나는 일입니다. – MataHari

14

이것은 바이트, 당신은 바이트 a이 반환 값을 할당하려고 와 함께 rray;

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

가 더 암시 같은 ASCII 또는 UTF8 같은 바이트 등의 문자열을 나타내는 다른 인코딩 다수 존재하기 때문에 문자열 [] 바이트위한 converstion. 없다

은 적절한 인코딩 클래스를 사용하여 바이트를 명시 적으로 변환해야합니다.

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