【发布时间】:2020-06-02 05:08:06
【问题描述】:
我想用Java开发一个OTPInputStream,它扩展了InputStream并接受另一个关键数据输入流并提供一个流加密/解密输入流。我需要开发一个测试程序来显示使用 XOR 和任意数据的OTPInputStream。
我尝试使用此代码,但我遇到的问题是
java.io.FileInputStream不能转换为java.lang.CharSequence
我应该在这里做什么?
public class Bitwise_Encryption {
static String file = "" ;
static String key = "VFGHTrbg";
private static int[] encrypt(FileInputStream file, String key) {
int[] output = new int[((CharSequence) file).length()];
for(int i = 0; i < ((CharSequence) file).length(); i++) {
int o = (Integer.valueOf(((CharSequence) file).charAt(i)) ^ Integer.valueOf(key.charAt(i % (key.length() - 1)))) + '0';
output[i] = o;
}
return output;
}
private static String decrypt(int[] input, String key) {
String output = "";
for(int i = 0; i < input.length; i++) {
output += (char) ((input[i] - 48) ^ (int) key.charAt(i % (key.length() - 1)));
}
return output;
}
public static void main(String args[]) throws FileNotFoundException {
FileInputStream file = new FileInputStream("directory");
encrypt(file,key);
//decrypt();
int[] encrypted = encrypt(file,key);
System.out.println("Encrypted Data is :");
for(int i = 0; i < encrypted.length; i++)
System.out.printf("%d,", encrypted[i]);
System.out.println("");
System.out.println("---------------------------------------------------");
System.out.println("Decrypted Data is :");
System.out.println(decrypt(encrypted,key));
}
}
【问题讨论】:
-
(CharSequence) file你希望这个做什么?
标签: java bit-manipulation fileinputstream