첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

▶ BASE64 문자열 여부 구하기 예제

string source = "TNGkwrjSIAA4u5DH9MU="; // 테스트 문자열

Console.WriteLine(IsBase64String(source));

 

728x90

 

▶ BASE64 문자열 여부 구하기

#region BASE64 문자열 여부 구하기 - IsBase64String(source)

/// <summary>
/// BASE64 문자열 여부 구하기
/// </summary>
/// <param name="source">소스 문자열</param>
/// <returns>BASE64 문자열 여부</returns>
public bool IsBase64String(string source)
{
    if(source == null || source.Length == 0 || source.Length % 4 != 0 || source.Contains(' ') || source.Contains('\t') || source.Contains('\r') || source.Contains('\n'))
    {
        return false;
    }

    int index = source.Length - 1;

    if(source[index] == '=')
    {
        index--;
    }

    if(source[index] == '=')
    {
        index--;
    }

    for(int i = 0; i <= index; i++)
    {
        if(Validate(source[i]))
        {
            return false;
        }
    }

    return true;
}

#endregion
#region 무결성 검증하기 - Validate(source)

/// <summary>
/// 무결성 검증하기
/// </summary>
/// <param name="source">소스 문자</param>
/// <returns>무결성 검증 결과</returns>
private bool Validate(char source)
{
    int value = (int)source;

    if(value >= 48 && value <= 57)
    {
        return false;
    }

    if(value >= 65 && value <= 90)
    {
        return false;
    }

    if(value >= 97 && value <= 122)
    {
        return false;
    }

    return value != 43 && value != 47;
}

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요