Kotlin-如何实现围栏密码?

Kotlin-如何实现围栏密码?,kotlin,encryption,Kotlin,Encryption,我在搞加密 fun main(){ println("Enter the message:") var message:String = readLine()!!.toUpperCase() println("Enter the key:") var key:Int = readLine()!!.toInt() var skip:Int = 2*(key-1) var j=0 var encrypte

我在搞加密

fun main(){
    println("Enter the message:")
    var message:String = readLine()!!.toUpperCase()
    println("Enter the key:")
    var key:Int = readLine()!!.toInt()
    var skip:Int = 2*(key-1)
    var j=0
    var encryptedMsg:String=""
    var key1 = key

    while(key1>0){
        for(i in (key-key1)..message.length step  skip){
            if(i<=message.length-1)
                encryptedMsg+=message[i]
        }
        key1-=1
        skip = 2*(key1-1)
    }
    println("Encrypted Message: $encryptedMsg")
}
I am having trouble with the last row.
fun main(){
println(“输入消息:”)
变量消息:String=readLine()!!.toUpperCase()
println(“输入键:”)
变量键:Int=readLine()!!.toInt()
变量跳过:Int=2*(键-1)
var j=0
var encryptedsg:String=“”
var key1=密钥
while(键1>0){
对于(输入i(键-key1)…消息长度步长跳过){
如果(i
fun main(){
println(“输入消息:”)
变量消息:String=readLine()!!.toUpperCase()
println(“输入键:”)
变量键:Int=readLine()!!.toInt()
变量跳过:Int=2*(键-1)
var j=0
var encryptedsg:String=“”
var key1=密钥
while(键1>0){
对于(输入i(键-key1)…消息长度步长跳过){
如果(i)
fun main(){
    println("Enter the message:")
    var message:String = readLine()!!.toUpperCase()
    println("Enter the key:")
    var key:Int = readLine()!!.toInt()
    var skip:Int = 2*(key-1)
    var j=0
    var encryptedMsg:String=""
    var key1 = key

    while(key1>0){
        for(i in (key-key1)..message.length step  skip){
            if(i<=message.length-1)
                encryptedMsg+=message[i]
        }
        key1-=1
        skip = 2*(key1-1)
        if(skip==0) skip=2*(key-1)  //This solves the problem
    }
    println("Encrypted Message: $encryptedMsg")
}