2014-02-13 2 views
1

사용자 이름이 base64 문자열인지 확인하려고합니다. 문자열이 base64 인코딩 된 경우에도 계속 잘못된 예외 오류 메시지가 throw됩니다. 내가 여기서 무엇을 놓치고 있니? 이 비 기본 64 문자 두 개 이상의 패딩 문자 또는 패딩 문자 사이에 잘못된 문자가 들어 있으므로Converting.FromBase64String이 형식 예외를 던지고 있습니다.

public bool checkBase64String(string value) //value = “TWrXfr4gGTE%3d” 
     { 
      try 
      { 
       byte[] vArray = Convert.FromBase64String(value); 
       return true; 
      } 
      catch (FormatException ex) 
      { 
       ex.ToString(); 
      } 
      return false; 
     } 

입력은 유효한 자료-64 문자열이 아닙니다.

답변

8

입력이 URL로 인코딩되고 후행 =%3d이되었습니다. 변환하기 전에 TWrXfr4gGTE=으로 디코딩해야 ...

피들 ... http://dotnetfiddle.net/S8UpdJ

관련 문제