35 lines
992 B
Kotlin
35 lines
992 B
Kotlin
package kr.co.vividnext.sodalive.utils
|
|
|
|
import java.nio.charset.StandardCharsets
|
|
import java.security.SecureRandom
|
|
import java.util.Base64
|
|
import java.util.Random
|
|
import java.util.UUID
|
|
|
|
fun generatePassword(length: Int): String {
|
|
val characterSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()1234567890"
|
|
val random = SecureRandom()
|
|
val password = StringBuilder()
|
|
|
|
for (i in 0 until length) {
|
|
val rIndex = random.nextInt(characterSet.length)
|
|
password.append(characterSet[rIndex])
|
|
}
|
|
|
|
return password.toString()
|
|
}
|
|
|
|
fun generateFileName(prefix: String = ""): String {
|
|
val timestamp = System.currentTimeMillis()
|
|
val random = Random().nextInt(10000)
|
|
val uuid = UUID.randomUUID().toString()
|
|
|
|
return if (prefix.isBlank()) {
|
|
Base64
|
|
.getUrlEncoder()
|
|
.encodeToString("$uuid-$random-$timestamp".toByteArray(StandardCharsets.UTF_8))
|
|
} else {
|
|
"$prefix-$uuid-$random-$timestamp"
|
|
}
|
|
}
|