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
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON/.NET6] Attribute 클래스 : IsDefined 정적 메소드를 사용해 객체 속성의 어트리뷰트 설정 여부 구하기 (0) | 2022.07.13 |
---|---|
[C#/COMMON/.NET6] 대소문자 구분없이 문자열 대체하기 (0) | 2022.07.13 |
[C#/COMMON/.NET6] 대소문자 구분없이 문자열 대체하기 (0) | 2022.07.13 |
[C#/COMMON/.NET6] Regex 클래스 : 대소문자 구분없이 문자열 대체하기 (0) | 2022.07.13 |
[C#/COMMON/.NET6] StringBuilder 클래스 : 대소문자 구분없이 문자열 대체하기 (0) | 2022.07.13 |
[C#/COMMON/.NET6] Convert 클래스 : TryFromBase64String 정적 메소드를 사용해 BASE64 문자열 여부 구하기 (0) | 2022.07.13 |
[C#/COMMON/.NET6] Regex 클래스 : IsMatch 정적 메소드를 사용해 BASE64 문자열 여부 구하기 (0) | 2022.07.13 |
[C#/COMMON/.NET6] ReadOnlySpan<T> 구조체 : Slice 메소드 사용하기 (0) | 2022.07.11 |
[C#/COMMON/.NET6] Span<T> 구조체 : stackalloc 키워드를 사용해 할당받은 스택 메모리 참조하기 (0) | 2022.07.11 |
[C#/COMMON/.NET6] Span<T> 구조체 : Marshal 클래스의 AllocHGlobal 정적 메소드를 사용해 할당받은 힙 메모리 참조하기 (0) | 2022.07.11 |
댓글을 달아 주세요