我正在客户端和服务器上工作。两者都将在我的设备(多个客户端和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并在另一侧解密它,我希望使用预共享密钥对整个连接进行加密。)