是否可以使用ktor使用预共享密钥保护连接?

时间:2019-04-12 23:01:54

标签: ktor

我正在客户端和服务器上工作。两者都将在我的设备(多个客户端和1个服务器)上运行。对于服务器端,我打算使用ktor。我希望对连接进行加密,以便没有人以某种方式收听连接可以充当服务器的客户端。没有人应该知道服务器和客户端正在通信的内容。由于我拥有客户端和服务器,因此密钥交换没有问题,因此可以对密钥进行硬编码。如果可以使用ktor,可以给我一个示例代码,说明如何使用预共享密钥加密整个连接吗? 更具体地说,可以说我有这个hello world程序:

import io.ktor.application.*
import io.ktor.http.*
import io.ktor.response.*
import io.ktor.routing.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*

fun main(args: Array<String>) {
    val server = embeddedServer(Netty, port = 8080) {
        routing {
            get("/") {
                call.respondText("Hello World!", ContentType.Text.Plain)
            }
            get("/demo") {
                call.respondText("HELLO WORLD!")
            }
        }
    }
    server.start(wait = true)
}

我该如何更改它,即使用密钥对连接进行加密,以使“客户端”不知道密钥无法进行呼叫,即使有人正在侦听与真实客户端的连接,他也无法读取响应文本,因为它被加密传输。 (我不希望手动仅加密String并在另一侧解密它,我希望使用预共享密钥对整个连接进行加密。)

0 个答案:

没有答案