Quantcast
Channel: GUJ - Tópicos com a tag java
Viewing all articles
Browse latest Browse all 17410

Algoritmo simples de criptografia de chave simétrica que eu criei

$
0
0

@Moraisdelimahigor escreveu:

Ele funciona da seguinte maneira: Pega a mensagem, reverte, e nela adiciona alguns caracteres. Para faze-lo, eu basicamente usei as seguintes classes: String, StringBuilder (para adicionar ou remover caractere) e StringBuffer (para reverter a mensagem).

public interface Chave {

    public String criptografia(String x);
    public String descriptografar(String i);
}

public class Encriptar implements Chave {

    @Override
    public String criptografia(String x){
        StringBuffer sb = new StringBuffer(x); /*cria uma StringBuffer que
        recebe a String que é passada como argumento no método.
        */
        String a = sb.reverse().toString(); /*Cria uma string que armazena
        a string buffer revertida*/
        
        StringBuilder sc = new StringBuilder(a);/*cria uma stringbuilder que
        armazena a String revertida*/
        
        String p =  sc.insert(1, "GñopDS1G 978F 7CS7F-{54").toString();/*
        Adiciona os seguintes caracteres entre o primeiro e segundo caractere 
        (no caso, a partir da posição 1, indo até a posição 24)*/ 
        p = sc.insert(0, "D(GS G9õmoga16*.98F {´´´798!?").toString();/*adiciona
        os seguintes caracteres antes da palavra (a partir da posição 0, indo
        até a posição 29)*/
        p = sc.insert(p.length() - 1, "´´sg  dg5d4àóîís g2dg9s7").toString();/*
        adiciona os seguintes caracteres entre o penúltimo e último*/
        p = sc.insert(p.length(), "kl sco pesaox").toString();/*adiciona os
        seguintes caracteres depois do último*/
        
        return p.toUpperCase(); //retorna a mensagem criptografada maiúscula
    }//fim do método criptografia

    @Override
    public String descriptografar(String i) {
        StringBuilder sl = new StringBuilder(i);/*Cria uma StringBuilder que
        recebe a mensagem criptografada*/
        
        sl.delete(0, 29);/*elimina os caracteres da posição 0 à 29, onde foi
        adicionado caractere*/
        sl.delete(1, 24);/*elimina os caracteres da posição 1 à 24, onde foi
        adicionado caractere*/
        sl.delete(sl.length() - 13, sl.length());/*elimina os caracteres apartir
        da posição, onde foi adicionado caractere*/
        sl.delete(sl.length() - 25, sl.length() - 1);/*elimina os caracteres
        localizados antes do último caractere até o caractere localizado na
        posição da subtração entre o tamanho do caractere subtraido à 25, 
        onde foi adicionado caractere*/
        
        StringBuffer sf = new StringBuffer(sl.toString());/*Cria uma
        StringBuffer, que armazena a StringBuilder com a mensagem que foi
        passada para String*/
        
        String x = sf.reverse().toString();/*cria uma String que armazena a
        StringBuffer revertida, na qual foi passada para String*/
        
        return x;//retorna a mensagem descriptografada
    }//fim do método descriptografar
}//fim da classe Encriptar

public class Principal {

    public static void main(String[] args) {
        Encriptar e = new Encriptar();
        String mensagem = "Hadrya";
        System.out.println("Mensagem pura: "+mensagem);
        System.out.println("Mensagem criptada:\n"+e.criptografia(mensagem));
        
        String mensagemDescriptografada = e.criptografia(mensagem);
        
        System.out.println("Mensagem descriptografada: "
                +e.descriptografar(mensagemDescriptografada));
    }
    
}

Saída:

Mensagem pura: Hadrya
Mensagem criptada:
D(GS G9ÕMOGA16*.98F {´´´798!?AGÑOPDS1G 978F 7CS7F-{54YRDA´´SG DG5D4ÀÓÎÍS G2DG9S7HKL SCO PESAOX
Mensagem descriptografada: HADRYA

Mensagens: 1

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 17410

Latest Images

Trending Articles

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>