Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
30
Task/RSA-code/Seed7/rsa-code.seed7
Normal file
30
Task/RSA-code/Seed7/rsa-code.seed7
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
$ include "seed7_05.s7i";
|
||||
include "bigint.s7i";
|
||||
include "bytedata.s7i";
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
const string: plainText is "Rosetta Code";
|
||||
# Use a key big enough to hold 16 bytes of plain text in a single block.
|
||||
const bigInteger: modulus is 9516311845790656153499716760847001433441357_;
|
||||
const bigInteger: encode is 65537_;
|
||||
const bigInteger: decode is 5617843187844953170308463622230283376298685_;
|
||||
var bigInteger: plainTextNumber is 0_;
|
||||
var bigInteger: encodedNumber is 0_;
|
||||
var bigInteger: decodedNumber is 0_;
|
||||
var string: decodedText is "";
|
||||
begin
|
||||
writeln("Plain text: " <& plainText);
|
||||
plainTextNumber := bytes2BigInt(plainText, UNSIGNED, BE);
|
||||
if plainTextNumber >= modulus then
|
||||
writeln("Plain text message too long");
|
||||
else
|
||||
writeln("Plain text as a number: " <& plainTextNumber);
|
||||
encodedNumber := modPow(plainTextNumber, encode, modulus);
|
||||
writeln("Encoded: " <& encodedNumber);
|
||||
decodedNumber := modPow(encodedNumber, decode, modulus);
|
||||
writeln("Decoded: " <& decodedNumber);
|
||||
decodedText := bytes(decodedNumber, UNSIGNED, BE);
|
||||
writeln("Decoded number as text: " <& decodedText);
|
||||
end if;
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue