Alguem por acaso ai sabe como criar ou se já existem algum modelo de criptografia de cifra de transposiçoes.
Um modelo simples que pegue uma senha e criptografie ela usando cifra de transposições.
Cifra de transposição funciona assim:
[quote]TRANSPOSIÇÕES COLUNARES COM CHAVE NUMÉRICA
Este tipo de transposição é bem mais segura que a transposição colunar simples. Não é possível quebrá-la apenas determinando o número de colunas da matriz. Este processo de transposição é semelhante ao usado para obter sequências mistas de transposição.
A chave numérica geralmente é baseada numa palavra ou frase chave. Diferentemente das chaves usadas para obter transposições mistas, esta pode ter letras repetidas. Para produzir uma chave numérica a partir da chave, as letras são numeradas em ordem alfabética e as letras repetidas são numeradas em sequência da esquerda para a direita.
Por exemplo, a palavra chave BANANA resultará na chave numérica 415263
B A N A N A
4 1 5 2 6 3
Como nas transposições colunares simples, a matriz pode ou não ser preenchida completamente:
B A N A N A
4 1 5 2 6 3
A T A Q U E
C A N C E L
A D O
O resultado será TADQC ELACA ANOUE ou, se preenchidos os vazios, em duas versões: TADQC XELXA CAANO UEX ou simplesmente TADQC ELACA ANOUE.[/quote]
Comecei a fazer algo bemmmm simples para testar, mas como sou novo em JAVA já me tranquei ao preencher a matriz.
Segue o modelo:
[code]package Senha_Criptografada;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class transposicao {
static String key;
static String senha;
public static void main(String[] args) {
key = JOptionPane.showInputDialog("Insira sua Key:");
senha = JOptionPane.showInputDialog("Agora insira sua senha:");
int tamKey = key.length();
int tamSenha = senha.length();
int aux = (Integer)(tamSenha/tamKey);
String[][] keyCod = new String[aux][tamKey];
int ct = 0;
while (ct <= senha.length()) {
for (int i = 0; i < senha.length(); i++) {
for (int j = 0; j < key.length(); j++) {
keyCod[i][j] = Character.toString((Character)senha.charAt(ct)).toUpperCase();
ct++;
}
}
}
System.out.print(keyCod);
}
}[/code]
Obrigado.