文件名称:otp:一次性垫编程练习
文件大小:52KB
文件格式:ZIP
更新时间:2024-05-20 17:57:10
Ruby
一次性垫(OTP) 我们将使用您选择的语言编写一对程序,以使用进行编码和解码消息进行模拟。 encrypt和decrypt的程序将采用一个参数,即表示密钥的十六进制字符串,从STDIN读取纯文本(用于encrypt )或密文(用于decrypt ),并将结果输出到STDOUT 。 一次性填充的工作方式是,对消息与密钥按位进行XOR ,然后对同一密钥对结果密文进行XOR ,以检索原始消息。 之所以称为“一次性密码夹”,是因为如果您的对手截取了使用同一密码夹加密的多封邮件,则很容易找出密钥。 在现实生活中,您希望您的密钥至少与要加密的消息一样长,但是出于本练习的目的,我们将根据需要遍历密钥多次,以对消息进行加密。 因此,对消息中的每个字符进行加密: 将字符转换为其(因此'a'变为97) 从密钥中取出两个字符并将其转换为十六进制数字(因此,“ 00”变为0,“ ff”变为255) X