목록Encoding (1)
발전하는 춘배
Base64 encoding과 Hex encoding 방식, 인코딩 아웃풋의 크기
개요프로젝트를 진행하던 중, `crypto.randomBytes(64).toString("base64");` 로 생성한 salt를 mysql 데이터베이스의 CHAR(64)에 insesrt하려 했더니 Data too long for column 'salt'라면서 에러가 났다. chat-gpt에게 원인을 물어보니 다음과 같았다. `crypto.randomBytes(64)`는 64 바이트의 랜덤 데이터를 생성한다. 바이트 데이터를 base64로 인코딩하면, 일반적으로 인코딩된 문자열의 길이는 원본 데이터 크기의 약 1.33배가 된다. 따라서, 64 바이트의 데이터를 base64로 인코딩하면, 결과 문자열의 길이는 약 86자(ceil(64 * 4 / 3) = 86)가 된다. CHAR(64)는 최대 64자의 문..
CS
2024. 8. 29. 13:56
