Pem
Начиная с Kotlin: 2.2
val Pem: Base64
Кодирование, указанное в RFC 1421 section 4.3.2.4, — кодирование передачи содержимого Base64.
Для кодирования и декодирования используется алфавит кодирования, указанный в таблице 1 RFC 1421 и состоящий из символов 'A'..'Z', 'a'..'z', '+' и '/'.
Для этого экземпляра задан параметр дополнения PaddingOption.PRESENT. При необходимости используйте функцию withPadding, чтобы создать новый экземпляр с другим параметром дополнения.
При кодировании CRLF добавляется после каждых 64 символов. В конец закодированного результата разделитель строк не добавляется. При декодировании игнорируются все разделители строк и другие символы, не входящие в алфавит Base64.
Примеры
import kotlin.io.encoding.*
import kotlin.test.*
fun main() {
//sampleStart
val encoded = Base64.Pem.encode("Hello? :> ".encodeToByteArray())
println(encoded) // SGVsbG8/IDo+IA==
// Mime encoding ignores all characters not belonging to its alphabet
val decoded = Base64.Pem.decode("Y@{mFz!Z!TY}0")
println(decoded.decodeToString()) // base64
// let's encode some long text
val sourceText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris " +
"nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in " +
"reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla " +
"pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa" +
" qui officia deserunt mollit anim id est laborum."
val encodedText = Base64.Pem.encode(sourceText.encodeToByteArray())
println(encodedText)
val encodedLines = encodedText.lines()
println("${encodedLines.count()} lines, at most ${encodedLines.maxOf { it.length }} characters each") // 10 lines, at most 64 characters each
println("sourceText == Base64.Pem.decode(encodedText).decodeToString() is ${sourceText == Base64.Pem.decode(encodedText).decodeToString()}") // true
//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.io.encoding/-base64/-default/-pem.html