How to XOR byte arrays in Kotlin

1 Answer

0 votes
fun xorBytes(a: ByteArray, b: ByteArray): ByteArray {
    return ByteArray(a.size) { i -> (a[i].toInt() xor b[i].toInt()).toByte() }
}

fun printBitsetArray(label: String, array: ByteArray) {
    print("$label: ")
    array.forEach { byte ->
        print(byte.toUByte().toString(2).padStart(8, '0') + " ")
    }
    println()
}

fun main() {
    val a = "Aragorn".toByteArray(Charsets.US_ASCII)
    val b = "Boromir".toByteArray(Charsets.US_ASCII)
    val c = xorBytes(a, b)

    printBitsetArray("a", a)
    printBitsetArray("b", b)
    printBitsetArray("c", c)

    print("c: ")
    c.forEach { byte ->
        print("${byte.toUByte()} ")
    }
    println()
}

 
  
/*
run:
  
a: 01000001 01110010 01100001 01100111 01101111 01110010 01101110 
b: 01000010 01101111 01110010 01101111 01101101 01101001 01110010 
c: 00000011 00011101 00010011 00001000 00000010 00011011 00011100 
c: 3 29 19 8 2 27 28 

*/

 



answered Jul 12, 2025 by avibootz

Related questions

1 answer 79 views
1 answer 87 views
87 views asked Jul 12, 2025 by avibootz
1 answer 87 views
87 views asked Jul 12, 2025 by avibootz
1 answer 88 views
88 views asked Jul 12, 2025 by avibootz
1 answer 94 views
94 views asked Jul 12, 2025 by avibootz
1 answer 102 views
...