The ISAAC cipher: Difference between revisions

Content added Content deleted
m (→‎{{header|C#}}: Changing the section header so that task shows up under the language properly)
m (Added the Sidef language)
Line 3,002: Line 3,002:
This is a little test file
This is a little test file
that shows my encryption</pre>
that shows my encryption</pre>

=={{header|Sidef}}==
{{trans|Perl}}
<lang ruby>require 'Math::Random::ISAAC';

func xor_isaac(key, msg) {
var rng = %s'Math::Random::ISAAC'.new(unpack('C*', key));

msg.chars»ord»()
»^« 256.of{ rng.irand % 95 + 32 }.last(msg.len).reverse
«%« '%02X' -> join;
}

var msg = 'a Top Secret secret';
var key = 'this is my secret key';

var enc = xor_isaac(key, msg);
var dec = xor_isaac(key, pack('H*', enc));

say "Message: #{msg}";
say "Key : #{key}";
say "XOR : #{enc}";
say "XOR dcr: #{pack('H*', dec)}";</lang>
{{out}}
<pre>
Message: a Top Secret secret
Key : this is my secret key
XOR : 1C0636190B1260233B35125F1E1D0E2F4C5422
XOR dcr: a Top Secret secret
</pre>


=={{header|Tcl}}==
=={{header|Tcl}}==