Added One Time Pad cipher

This commit is contained in:
2022-02-23 19:33:41 +00:00
parent 750e3c774e
commit 3ad24bf2b8

View File

@@ -0,0 +1,41 @@
//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/monoSubstitution/OneTimePad.java
//Mattrixwv
// Created: 02-23-22
//Modified: 02-23-22
package com.mattrixwv.CipherStreamJava.monoSubstitution;
import com.mattrixwv.CipherStreamJava.exceptions.InvalidInputException;
import com.mattrixwv.CipherStreamJava.exceptions.InvalidKeywordException;
public class OneTimePad extends Vigenere{
//?Add some kind of entropy calculator?
//?Add some kind of "book passage includer"?
//Constructor
public OneTimePad(){
super();
}
public OneTimePad(boolean preserveCapitals, boolean preserveWhitespace, boolean preserveSymbols){
super(preserveCapitals, preserveWhitespace, preserveSymbols);
}
//Encodes input using key and returns the result
@Override
public String encode(String keyword, String inputString) throws InvalidKeywordException, InvalidInputException{
if(keyword.length() < inputString.length()){
throw new InvalidKeywordException("Key must be at least as long as the input");
}
return super.encode(keyword, inputString);
}
//Decodes input using key and returns the result
@Override
public String decode(String keyword, String inputString) throws InvalidKeywordException, InvalidInputException{
if(keyword.length() < inputString.length()){
throw new InvalidKeywordException("Key must be at least as long as the input");
}
return super.decode(keyword, inputString);
}
}