Anonymous user
Vigenère cipher: Difference between revisions
Refactored code
(Refactored code) |
|||
Line 1,244:
=={{header|Julia}}==
{{works with|Julia|0.6}}
<lang Julia>function encrypt(msg::
msg = uppercase(join(filter(isalpha, collect(msg))))▼
key = uppercase(join(filter(isalpha, collect(key))))
keylen = length(key)
if
key = repeat(key
end
enc =
@inbounds for i
enc[i] = Char((Int(msg[i]) + Int(key[i]) - 130) % 26 + 65)
end
return join(enc)
end
function decrypt(enc::
enc = uppercase(join(filter(isalpha, collect(enc))))
▲ len = length(enc)
msglen = length(enc)
keylen = length(key)
if
key = repeat(key
end
msg =
@inbounds for i
msg[i] = Char((Int(enc[i]) - Int(key[i]) + 26) % 26 + 65)
end
return join(msg)
end
const
const key = "LEMON"
for msg in messages
dec = decrypt(enc, key)
println("Original: $msg\n -> encrypted: $enc\n -> decrypted: $dec")
end</lang>
{{out}}
<pre>Original: Attack at dawn.
-> decrypted: ATTACKATDAWN
Original: Don't attack.
-> encrypted: OSZHNEXMQX
-> decrypted: DONTATTACK
Original: The war is over.
-> encrypted: ELQKNCMECIPV
-> decrypted: THEWARISOVER</pre>
=={{header|Kotlin}}==
|