📄 vignere.java
字号:
public class Vignere extends Cipher {
/* (non-Javadoc)
* @see Cipher#encrypt(java.lang.String)
*/
public String encrypt(String cleartext) {
StringBuffer strb = new StringBuffer(cleartext.length());
char keyc[] = this.getSKey().toCharArray();
char[] clear = cleartext.toCharArray();
int posClearALPHABET, posKeyALPHABET;
int posCipherText;
for (int i = 0; i < clear.length; i++)
{
posClearALPHABET = Character.getNumericValue(clear[i])-Character.getNumericValue(ALPHABET[0]) + 1;
posKeyALPHABET = Character.getNumericValue(keyc[i % keyc.length])-Character.getNumericValue(ALPHABET[0]);
posCipherText = (posClearALPHABET+posKeyALPHABET);
strb.append(ALPHABET[posCipherText]);
}
return strb.toString();
}//END OF METHOD
/* (non-Javadoc)
* @see Cipher#decrypt(java.lang.String)
*/
public String decrypt(String ciphertext) {
StringBuffer strb = new StringBuffer(ciphertext.length());
char keyc[] = this.getSKey().toCharArray();
char[] cipher = ciphertext.toCharArray();
int posClearALPHABET, posKeyALPHABET;
int posCipherText;
for (int i = 0; i < cipher.length; i++)
{
posCipherText = Character.getNumericValue(cipher[i])-Character.getNumericValue(ALPHABET[0]);
posKeyALPHABET = Character.getNumericValue(keyc[i % keyc.length])-Character.getNumericValue(ALPHABET[0])+1;
posClearALPHABET = (posCipherText - posKeyALPHABET) % ALPHABET.length;
if (posClearALPHABET < 0) posClearALPHABET = ALPHABET.length + posClearALPHABET;
strb.append(ALPHABET[posClearALPHABET]);
}
return strb.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -