One-time pad: Difference between revisions

→‎{{header|Wren}}: Now uses Wren-srandom module.
(Added Wren)
(→‎{{header|Wren}}: Now uses Wren-srandom module.)
Line 1,706:
=={{header|Wren}}==
{{trans|Go}}
{{libheader|Wren-srandom}}
{{libheader|Wren-ioutil}}
{{libheader|Wren-dynamic}}
{{libheader|Wren-str}}
<lang ecmascript>import "randomio" for RandomFile, Directory
import "io/srandom" for File, DirectorySRandom
import "/ioutil" for FileUtil, Input
import "/dynamic" for Enum
Line 1,745 ⟶ 1,746:
var makePad = Fn.new { |nLines|
var nChars = nLines * CHARS_PER_LINE
var r = Random.new()
var sb = ""
/* generate random upper case letters */
for (i in 0...nChars) sb = sb + String.fromByte(rSRandom.int(65, 91))
return inChunks.call(sb, nLines, FileType.OTP)
}
Line 1,763:
var temp = sb.count % CHARS_PER_LINE
if (temp > 0) { // pad with random characters so each line is a full one
for (i in temp...CHARS_PER_LINE) sb = sb + String.fromByte(rSRandom.int(65, 91))
var r = Random.new()
for (i in temp...CHARS_PER_LINE) sb = sb + String.fromByte(r.int(65, 91))
}
var ft = encrypt ? FileType.ENC : FileType.DEC
9,476

edits