티스토리 뷰
Java에 비해 C#은 암호와 복호화가 용이했던 기억이....
그런데 오랜만에 하려니 다 까먹어서 기록해 둔다 ㅠㅠ
1. 형변환 : byte[] to string, string to byte[]
- 출처 : zephie.tistory.com/11
- byte[] to string : string str = Encoding.Default.GetString(byte[]);
- string to byte[] : byte[] arrByte = Encoding.UTF8.GetBytes(string);
2. Base64Encode
- string str = Convert.ToBase64String(byte[]);
3. Base64Decode
- byte[] arrByte = Convert.FromBase64String(string);
4. Base64UrlEncode
- 참고사이트 : stackoverflow.com/questions/26353710/how-to-achieve-base64-url-safe-encoding-in-c
- Base64 암호화에다가 추가로 3개의 문자를 처리하는 과정이 실행된다.
① + → - 로 치환
② / → _ 로 치환
③ = → 제거
- 복호화는 위의 3개의 문자를 반대로 처리한 후 Base64 복호화를 실행한다.
① - → + 로 치환
② _ → / 로 치환
③ = → 추가 (0~2개 까지만 추가된다.)
*몇개를 추가할 것인가? Base64 문자열은 문자열 길이가 4의 배수여야 한다.
string.Length % 4 == 0 : 추가할 필요가 없다.
string.Length % 4 == 2 : =을 2개 추가한다.
string.Length % 4 == 3 : =을 1개 추가한다.
string.Length % 4 == 1 : Base64 복호화를 할 수 없는 문자 (예외처리 한다 : throw new FormatException)