In [ ]:
    
plaintext = """Burning 'em, if you ain't quick and nimble
I go crazy when I hear a cymbal""";
    
In [ ]:
    
key="ICE";
    
In [ ]:
    
function stringToBytes(X::String)
    return [UInt8(X[ii]) for ii in 1:length(X)]
end;
    
In [ ]:
    
function repeatToLength(a::Array{UInt8,1}, len::Int64)
    if len < length(a)
        return a[1:len]
    else
        b = repeat(a, outer=convert(Int64, ceil(len / length(a))))
        return b[1:len]
    end
end;
    
In [ ]:
    
function repeatingKeyXOR(pt::Array{UInt8,1}, key::Array{UInt8,1})
    return pt $ repeatToLength(key, length(pt))
end;
    
In [ ]:
    
function repeatingKeyXOR(pt::String, key::String)
    return repeatingKeyXOR(stringToBytes(pt), stringToBytes(key))
end;
    
In [ ]:
    
cipherbytes = repeatingKeyXOR(plaintext, key);
    
In [ ]:
    
bytes2hex(cipherbytes)
    
In [ ]: