Sqids이란 무엇인가요?

Sqids는 숫자로부터 짧은 고유 식별자를 생성할 수 있는 오픈 소스 라이브러리입니다. 이 ID들은 URL에 안전하며 여러 숫자를 인코딩할 수 있으며 일반적인 욕설 단어를 포함하지 않습니다. 더 보기 .

이것이 그들이 보이는 모습입니다:

https://example.com/Lqj8a0

빠른 인코딩 및 디코딩 예제:

case sqids (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "86Rf07"
case sqids (decode "86Rf07") of
  Left  {}      -> print "Something went wrong."
  Right numbers -> print numbers -- [1, 2, 3]

ID가 너무 짧으면 특정 길이로 패딩할 수 있습니다:

case runSqids defaultSqidsOptions{ minLength = 10 } (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "86Rf07xd4z"

알파벳을 섞어 고유한 ID 생성하기:

case runSqids defaultSqidsOptions{ alphabet = "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt" } (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "XRKUdQ"

전체 문서는 여기에서 확인할 수 있습니다. https://github.com/sqids/sqids-haskell

원래 Hashids Haskell을 찾고 계시다면, 여기에서 찾을 수 있습니다: https://github.com/laserpants/hashids-haskell

사용 사례

Sqids의 주요 사용 용도는 순수하게 시각적입니다. 프로젝트에서 숫자 대신 ID를 사용하고 싶다면, Sqids은 좋은 선택일 수 있습니다.

좋음

  • 주 키 인코딩 관계형 데이터베이스를 사용하는 경우
  • 데이터베이스 조회 저장 여러 객체 인코딩을 통해
  • 임시 로그인 토큰 욕설 없는 URL 안전

부적합함

  • 민감한 데이터 이것은 암호화 라이브러리가 아닙니다
  • 사용자 ID 인코딩 알파벳을 알아내면 사용자 수를 공개할 수 있음

기능

  • 🆔 음수가 아닌 숫자로부터 짧은 ID 생성
  • 쉬운 인코딩 및 디코딩
  • 🫣 자동 생성된 ID에는 일반적인 욕설이 포함되지 않음
  • 🎲 셔플된 알파벳을 통한 사용자 정의 ID 지원
  • 🥳 45 통합 (84% 는 새로운 디자인을 사용합니다)
  • 📌 모든 버전은 동일한 ID를 생성함
  • 🍻 허용 라이선스를 가진 소규모 라이브러리

예제 / 플레이그라운드