How to XOR byte arrays in Swift

1 Answer

0 votes
import Foundation

func xorBytes(_ a: [UInt8], _ b: [UInt8]) -> [UInt8] {
    return zip(a, b).map { $0 ^ $1 }
}

func printBitsetArray(label: String, array: [UInt8]) {
    print("\(label): ", terminator: "")
    for byte in array {
        let bits = String(byte, radix: 2).padding(toLength: 8, withPad: "0", startingAt: 0)
        print(bits, terminator: " ")
    }
    print()
}

let a = Array("Aragorn".utf8)
let b = Array("Boromir".utf8)
let c = xorBytes(a, b)

printBitsetArray(label: "a", array: a)
printBitsetArray(label: "b", array: b)
printBitsetArray(label: "c", array: c)

print("c: ", terminator: "")
for byte in c {
    print(byte, terminator: " ")
}



/*
run:

a: 10000010 11100100 11000010 11001110 11011110 11100100 11011100 
b: 10000100 11011110 11100100 11011110 11011010 11010010 11100100 
c: 11000000 11101000 10011000 10000000 10000000 11011000 11100000 
c: 3 29 19 8 2 27 28 

*/

 



answered Jul 12, 2025 by avibootz

Related questions

1 answer 76 views
76 views asked Jul 11, 2025 by avibootz
1 answer 104 views
1 answer 86 views
86 views asked Jul 12, 2025 by avibootz
1 answer 88 views
88 views asked Jul 12, 2025 by avibootz
1 answer 93 views
93 views asked Jul 12, 2025 by avibootz
1 answer 102 views
...