我正在尝试接受密码学并且一直在尝试这个练习
编写程序(最好是Java)来生成一次性填充,这是所有随机数据(比如1 MB)的相对较大的文件.该程序还应该能够基于生成的一次性填充来加密/解密文件.
提示:使用以下测试向量检查您的程序是否正确加密.
明文(ASCII):每个云都有一线希望
OTP(HEX):
密文(HEX):28b14ab7ecc33ea157b539ea426c5e9def0d81627eed498809c17ef9404cc5
我曾尝试使用随机数生成器生成一次性打击垫,因为我需要将它们转换为HEX格式.而且我很确定我很困惑或者没有以正确的方式解决它
public static void oneTimePad()
{
Random ran = new Random();
String s = "0123456789ABCDEF";
for(int i = 0; i < 100; i++)
{
System.out.print(s.charAt(ran.nextInt(s.length())));
}
}
Run Code Online (Sandbox Code Playgroud)
以上将是我的一次性填充,我想知道如何使用一次性密码并解密它来实现加密.