Как преобразовать id в int64 в id с 11-12 символами? В базе хранится id - int64. Хочу в url на UI иметь id в формате "8STmsLOBdgU", то есть как например на youtube. Хранить дополнительно этот длинный id хочу. То есть, хочу кодировать/раскодировать на лету. Как закадировать/раскодировать id int64 в id в формате "8STmsLOBdgU"? То есть в 11-12 символов. Какой алгоритм или криптофункцию использовать?
Для преобразования числового идентификатора int64 в строковый формат с 11-12 символами, вы можете использовать алгоритм кодирования, такой как base64. Вот пример кода на языке программирования Go, показывающий, как преобразовать int64 в base64 и обратно:
package main import ( "encoding/base64" "fmt" ) func main() { id := int64(1234567890) // Преобразование int64 в []byte и кодирование base64 idBytes := []byte(fmt.Sprintf("%d", id)) encodedID := base64.StdEncoding.EncodeToString(idBytes) fmt.Println("Encoded ID:", encodedID) // Декодирование base64 и преобразование обратно в int64 decodedIDBytes, err := base64.StdEncoding.DecodeString(encodedID) if err != nil { fmt.Println("Error decoding id:", err) return } decodedID := int64(0) fmt.Sscanf(string(decodedIDBytes), "%d", &decodedID) fmt.Println("Decoded ID:", decodedID) }
Этот код примерно отображает процесс преобразования int64 в base64 и обратно. Функция EncodeToString преобразует числовой идентификатор в массив байтов и затем кодирует его в формат base64. Функция DecodeString декодирует строку base64 обратно в массив байтов, а затем использует Sscanf для распознавания числового идентификатора в этом массиве байтов.
Это простой пример, и в зависимости от вашего языка программирования и среды выполнения, может потребоваться использовать другие библиотеки или алгоритмы кодирования. Надеюсь, это помогло вам начать.
Для преобразования числового идентификатора int64 в строковый формат с 11-12 символами, вы можете использовать алгоритм кодирования, такой как base64. Вот пример кода на языке программирования Go, показывающий, как преобразовать int64 в base64 и обратно:
package mainimport (
"encoding/base64"
"fmt"
)
func main() {
id := int64(1234567890)
// Преобразование int64 в []byte и кодирование base64
idBytes := []byte(fmt.Sprintf("%d", id))
encodedID := base64.StdEncoding.EncodeToString(idBytes)
fmt.Println("Encoded ID:", encodedID)
// Декодирование base64 и преобразование обратно в int64
decodedIDBytes, err := base64.StdEncoding.DecodeString(encodedID)
if err != nil {
fmt.Println("Error decoding id:", err)
return
}
decodedID := int64(0)
fmt.Sscanf(string(decodedIDBytes), "%d", &decodedID)
fmt.Println("Decoded ID:", decodedID)
}
Этот код примерно отображает процесс преобразования int64 в base64 и обратно. Функция EncodeToString преобразует числовой идентификатор в массив байтов и затем кодирует его в формат base64. Функция DecodeString декодирует строку base64 обратно в массив байтов, а затем использует Sscanf для распознавания числового идентификатора в этом массиве байтов.
Это простой пример, и в зависимости от вашего языка программирования и среды выполнения, может потребоваться использовать другие библиотеки или алгоритмы кодирования. Надеюсь, это помогло вам начать.