Sqids이란 무엇인가요?

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

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

https://example.com/Lqj8a0

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

Sqids = sqids:new(),
Id = sqids:encode([1, 2, 3], Sqids). % "86Rf07"
Numbers = sqids:decode(Id, Sqids). % [1,2,3]

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

Sqids = new(#{ min_length=>10 }),
Id = sqids:encode([1, 2, 3], Sqids). % "86Rf07xd4z"
Numbers = sqids:decode(Id, Sqids). % [1,2,3]

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

Sqids = new(#{ alphabet=><<"k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt">> }),
Id = sqids:encode([1, 2, 3], Sqids). % "XRKUdQ"
Numbers = sqids:decode(Id, Sqids). % [1,2,3]

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

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

사용 사례

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

좋음

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

부적합함

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

기능

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

예제 / 플레이그라운드