Exemplo n.º 1
0
  public String encode(String plain) {
    int period = key.length();
    String key_u = key.toUpperCase();
    String plain_u = plain.toUpperCase();
    StringBuilder sb = new StringBuilder();
    int kp = 0;
    for (int i = 0; i < plain_u.length(); i += period) {
      int end = i + period > plain_u.length() ? plain_u.length() : i + period;
      char kp_c = (char) (kp + 'A');
      kp += progression_index;
      kp = kp % 26;
      for (int j = i; j < end; j++) {
        char k1 = key_u.charAt(j - i);
        char pt = plain_u.charAt(j);
        char c1 = Vigenere.get_vigenere_char(k1, pt);
        char c2 = Vigenere.get_vigenere_char(kp_c, c1);
        sb.append(c2);
      }
    }

    return sb.toString();
  }