generate V4
Версия Kotlin: 2.4
fun generateV4(): Uuid
Создаёт новый экземпляр Uuid со случайным значением.
Возвращаемый UUID соответствует варианту IETF (вариант 2) и версии 4, разработанным для обеспечения очень высокой вероятности уникальности независимо от времени и места его создания. UUID создаётся с помощью доступного на платформе криптографически стойкого генератора псевдослучайных чисел (CSPRNG). Если базовая система не собрала достаточно энтропии, эта функция может блокироваться до тех пор, пока не будет собрано достаточное количество энтропии и CSPRNG не будет полностью инициализирован. Следует отметить, что используемый в целевой платформе Kotlin/WasmWasi генератор псевдослучайных чисел не гарантированно является криптографически стойким. Сведения об API, используемых для создания случайного UUID в каждой поддерживаемой целевой платформе, приведены ниже.
Обратите внимание, что возвращаемый UUID не рекомендуется использовать в криптографических целях, поскольку UUID версии 4 имеет частично предсказуемый битовый шаблон и использует не более 122 бит энтропии независимо от платформы.
Для создания случайного UUID в каждой из поддерживаемых целевых платформ используются следующие API:
Kotlin/JVM — java.security.SecureRandom
Kotlin/JS — Crypto.getRandomValues()
Kotlin/WasmJs — Crypto.getRandomValues()
Kotlin/WasmWasi — random_get
Kotlin/Native: — целевые платформы Linux — getrandom — целевые платформы Apple и Android Native — arc4random_buf — целевые платформы Windows — BCryptGenRandom
Обратите внимание, что базовый API, используемый для создания случайных UUID, может измениться в будущем.
Возвращает
Случайно сгенерированный UUID.
Исключения
если базовый API завершится с ошибкой. Возможные причины ошибки и рекомендации по её обработке см. в документации соответствующего базового API.
Примеры
import kotlin.test.*
import kotlin.time.Instant
import kotlin.uuid.*
fun main() {
//sampleStart
// Generates a random and unique uuid each time
val uuid1 = Uuid.generateV4()
val uuid2 = Uuid.generateV4()
val uuid3 = Uuid.generateV4()
println(uuid1 == uuid2) // false
println(uuid1 == uuid3) // false
println(uuid2 == uuid3) // false
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.uuid/-uuid/-companion/generate-v4.html