2013-09-02 2 views
0

이 코드로 인해 어려움을 겪고있는 것처럼 보입니다. 누구든지 도움을받을 수 있다면 감사하겠습니다. I는로 데이터를 전달해야 할 제String from web.config AppSettings가 바이트로 변환됩니다.

, 1, 3, 5, 7, 9, 11, 15, 17 :

I는 다음과 같은 형식 말에 web.config 파일 내의 데이터의 문자열을

개인 정적 판독 전용 바이트 [엔트로피 = {1, 3, 5, 7, 9, 11 : private static readonly byte[] Entropy하지만 오류가 계속 : I는 다음 사용하면 을 데이터

잘못 , 15, 17, 19}; 좋아, 그래서 내 문제는 바이트 [로] 문자열을 변환하는 것 같다 작동합니다.

나는 수많은 사이트에서이 문제 (아래에 몇 가지)

C# convert string into its byte[] equivalent

http://social.msdn.microsoft.com/Forums/vstudio/en-US/08e4553e-690e-458a-87a4-9762d8d405a6/how-to-convert-the-string-to-byte-in-c-

Converting string to byte array in C#

http://www.chilkatsoft.com/faq/dotnetstrtobytes.html

을 검색 좀하지만 아무것도 작동하는 것 같다 없습니다.

위에서 언급 한대로 도움이 될 것입니다.

private static readonly string WKey = ConfigurationManager.AppSettings["Entropy"]; 

     private static readonly byte[] Entropy = WKey; 

     public static string DecryptDataUsingDpapi(string encryptedData) 
     { 
      byte[] dataToDecrypt = Convert.FromBase64String(encryptedData); 
      byte[] originalData  = ProtectedData.Unprotect(dataToDecrypt, Entropy, DataProtectionScope.CurrentUser); 
      return Encoding.Unicode.GetString(originalData); 
     } 

조지

답변

1

당신은 할 수 있습니다

string Entropy = "1, 3, 5, 7, 9, 11, 15, 17, 19"; 
var parts = Entropy.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 
byte[] bytes = Array.ConvertAll(parts, p => byte.Parse(p)); 

byte.Parse는 "식사"와 공백을 무시합니다. 16 진수 스타일 번호 (AB, 그러나 0x이 없으므로, 0xAB)를 사용할 수 없습니다.

byte[] bytes = Array.ConvertAll(parts, p => byte.Parse(p, NumberStyles.HexNumber)); 

을하지만 그것은

+0

안녕 @xanatos, 일 감사 :-)하지-진수 번호를 받아 들일 것입니다 : 당신은해야합니다. –