【发布时间】:2014-11-15 15:50:32
【问题描述】:
我正在尝试一个简单的 Vigenere 密码,其中从文件中读取纯文本并使用密钥进行加密。
键=ABC PT和密钥相加得到密文
纯文本:W E W I L L A T T A C K T O N I G H T
键:A B C A B C A B C A B C A B C A B C A
密码:W F Y I M N A U V A D M T P P I H J T
如何在纯文本长度内重复密钥,然后在读取时对其进行加密。
使用以下 sn-p 从文件中读取输入
FileInputStream fileInput = new FileInputStream("/Documents/file1.txt");
int r;
int count = 0 ;
//Read each character from the file one by one till EOF
while ((r = fileInput.read()) != -1)
{
char c = (char) r;
//SOMETHING NEEDS TO BE DONE HERE
System.out.print(c);
count ++; //Keeps count of the number of characters in the plain text.
【问题讨论】:
-
你试过什么?如果您手动解决此问题,您将如何解决?
-
我正在尝试按如下方式处理它:在读取时将纯文本保存在数组中...将密钥保存在相同大小的数组中并执行添加...。
-
好的,所以当您扫描明文时,您需要跟踪您在密钥中的位置,以及当您到达密钥时重新开始。这意味着维护两个索引,或者使用一个模密钥的长度。试着写“SOMETHING”,看看会发生什么,如果错了就改正直到它是对的。编程是调试一张白纸的艺术。
-
@keshlam :嘿,我找到了解决方案。看看