회사에서 개발중인 서비스에 휴대폰 본인인증을 붙이다 보니 아주 어질어질합니다.
보내주는 본인인증 결과값을 암호화 하는데, 알고리즘으로 SEED를 쓰는건 둘째치고,
옥텟스트림을 "리틀엔디안을 고려하여" 4바이트 단위로 짤라 엔디안 플립하여 복호화 해야 합니다.
byte[] 가 아니라 int[] 로 취급해요. 아니 대체 왜...
20년 전에 나온 시스템이라 하위호환성이 중요하니 여전히 텍스트 인코딩은 EUC-KR 입니다.
EUC-KR로 날아온 문자열을 까 보면 99%는 별 문제가 없는데,
1% 미만 확률(1천건당 3~4건)로 유니코드 이스케이프 된 텍스트가 옵니다.
그러니까 EUC-KR로 인코딩 된 "가나다" 가 아니라, EUC-KR로 인코딩된 "%uAC00%uB098%uB2E4" 가 오는거에요.
야이씨
20년 된 건물 지하 7층에, 건물 준공 후 아무도 만진 적 없는 전기패널을 열어보는 기분입니다.
본인인증 API v2 만들어주면 안 되나 모르겠습니다 아이고 머리야.