Vigenère cipher: Difference between revisions

Content deleted Content added
Petelomax (talk | contribs)
Trizen (talk | contribs)
m →‎{{header|Sidef}}: updated code
Line 3,050: Line 3,050:
=={{header|Sidef}}==
=={{header|Sidef}}==
{{trans|Perl 6}}
{{trans|Perl 6}}
<lang ruby>func s2v(s) { s.uc.scan(/[A-Z]/)»ord»() »-» 65 };
<lang ruby>func s2v(s) { s.uc.scan(/[A-Z]/).map{.ord»-» 65 }
func v2s(v) { (v »%» 26 »+» 65chr»().join };
func v2s(v) { v »%» 26 »+» 65 -> map{.chr}.join }
 

func blacken (red, key) { v2s(s2v(red) »+« s2v(key)) };
func blacken (red, key) { v2s(s2v(red) »+« s2v(key)) }
func redden (blk, key) { v2s(s2v(blk) »-« s2v(key)) };
func redden (blk, key) { v2s(s2v(blk) »-« s2v(key)) }
 

var red = "Beware the Jabberwock, my son! The jaws that bite, the claws that catch!";
var red = "Beware the Jabberwock, my son! The jaws that bite, the claws that catch!"
var key = "Vigenere Cipher!!!";
var key = "Vigenere Cipher!!!"
 

say red;
say red
say (var black = blacken(red, key));
say (var black = blacken(red, key))
say redden(black, key);</lang>
say redden(black, key)</lang>
{{out}}
{{out}}
<pre>
<pre>