Vigenere(维吉尼亚密码)密码的Java实现
- Vigenere(维吉尼亚密码)密码的Java实现。
- Vigenère密码是多表代换密码中的一种,其思想是:明文的每个字母使用不同k的凯撒加密。
- 我们可以构造一个维吉尼亚密码表的矩阵,最左边为密钥字母,最上面为明文,
- 加密过程很简单:给定密钥字母x和明文字母y,密文字母为位于x行和y列的字母。
- 如果假设能被加密的字符有N个,如果把这N个字符建成一个环,
- 那么加密过程就是模N的过程,即,C(i)=(K(i)+P(i))modN,
- 其中K、C、P分别代表的是密钥空间、密文空间、消息(明文)空间。
public class Vigenere {
public static String encrypt(final String message, final String key) {
String result = "";
for (int i = 0, j = 0; i < message.length(); i++) {
char c = message.charAt(i);
if (Character.isLetter(c)) {
if (Character