Как преобразовать id в int64 в id с 11-12 символами? В базе хранится id - int64. Хочу в url на UI иметь id в формате "8STmsLOBdgU", то есть как например на youtube.
Хранить дополнительно этот длинный id хочу. То есть, хочу кодировать/раскодировать на лету.
Как закадировать/раскодировать id int64 в id в формате "8STmsLOBdgU"? То есть в 11-12 символов. Какой алгоритм или криптофункцию использовать?

21 Авг 2019 в 07:11
201 +1
0
Ответы
1

Для преобразования числового идентификатора int64 в строковый формат с 11-12 символами, вы можете использовать алгоритм кодирования, такой как base64. Вот пример кода на языке программирования Go, показывающий, как преобразовать int64 в base64 и обратно:

package main
import "encoding/base64""fmt" "encoding/base64"
"fmt"
"encoding/base64""fmt"

func main {
id := int64123456789012345678901234567890
// Преобразование int64 в byte и кодирование base64
idBytes := bytefmt.Sprintf("fmt.Sprintf("%d", id)fmt.Sprintf(" encodedID := base64.StdEncoding.EncodeToStringidBytesidBytesidBytes
fmt.Println"EncodedID:",encodedID"Encoded ID:", encodedID"EncodedID:",encodedID
// Декодирование base64 и преобразование обратно в int64
decodedIDBytes, err := base64.StdEncoding.DecodeStringencodedIDencodedIDencodedID if err != nil {
fmt.Println"Errordecodingid:",err"Error decoding id:", err"Errordecodingid:",err return
}
decodedID := int64000 fmt.Sscanfstring(decodedIDBytes),"string(decodedIDBytes), "%d", &decodedIDstring(decodedIDBytes),"
fmt.Println"DecodedID:",decodedID"Decoded ID:", decodedID"DecodedID:",decodedID }

Этот код примерно отображает процесс преобразования int64 в base64 и обратно. Функция EncodeToString преобразует числовой идентификатор в массив байтов и затем кодирует его в формат base64. Функция DecodeString декодирует строку base64 обратно в массив байтов, а затем использует Sscanf для распознавания числового идентификатора в этом массиве байтов.

Это простой пример, и в зависимости от вашего языка программирования и среды выполнения, может потребоваться использовать другие библиотеки или алгоритмы кодирования. Надеюсь, это помогло вам начать.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир