Autor Tema: Vigenere  (Leído 581 veces)

Phicar

  • :P
  • Administrador
  • Mensajes: 283
  • (1+sqrt(5))/2
    • MSN Messenger - diego_villahacker@hotmail.com
    • Ver Perfil
    • Phicar's Blog
    • Email
Vigenere
« : diciembre 17, 2009, 01:09:01 am »
Bueno, no tengo suegno y demas, hice el Vigene, este algoritmo es muyy parecido al Caesar la diferencia es que tiene una semilla mucho mas complicada de hallar ya que esta es una palabra la cual se itera tambien y se hace la suma de la siguiente manera

(PosicionTxT+PosicionSeed)%alfabeto.longitud

Aca esta el codigo...

Código: (java) [Seleccionar]
/*
Modulo Vigenere para RiCrypt
 
Cifrado por sustitucion usando sumas y restas modulares en el alfabeto
normal pero altercadas con una semilla como palabra.
 
Phicar
redinfocol.org
phicar@yashira.org
*/
public class Vigenere{
public static String TxT,Seed;
public static String Charset = "abcdefghijklmnopqrstuvwxyz";
public Vigenere(String TxT,String Seed){
this.Seed = Desn(Seed);
this.TxT = TxT;
}
public static String Cifrar(){
String Cifrado = "",a=TxT.toLowerCase();
for(int n = 0,c=0;n<TxT.length();n++,c = (c+1)%Seed.length()){
if(Charset.indexOf(a.charAt(n))!=-1){
int tmp = (Charset.indexOf(a.charAt(n))+Charset.indexOf(Seed.charAt(c)))%Charset.length();
Cifrado+=(Charset.indexOf(TxT.charAt(n))!=-1)?Charset.charAt(tmp):String.valueOf(Charset.charAt(tmp)).toUpperCase();
}else{
c-=1;
Cifrado+=TxT.charAt(n);
}
}
return Cifrado;
}
public static String DesCifrar(){
String DesCifrado = "";
String a = TxT.toLowerCase();
for(int n = 0,c=0;n<a.length();n++,c=(c+1)%Seed.length()){
if(Charset.indexOf(a.charAt(n))!=-1){
int tmp = (Charset.indexOf(a.charAt(n))-Charset.indexOf(Seed.charAt(c)));
tmp = (tmp<0)?(tmp+Charset.length()):tmp;
DesCifrado+=(Charset.indexOf(TxT.charAt(n))!=-1)?Charset.charAt(tmp):String.valueOf(Charset.charAt(tmp)).toUpperCase();
}else{
c-=1;
DesCifrado+=TxT.charAt(n);
}
}
return DesCifrado;
}
public static String Desn(String a){
String b = "";
for(int n = 0;n<a.length();n++){
if((Charset.indexOf(a.charAt(n))!=-1)||(Charset.indexOf(String.valueOf(a.charAt(n)).toLowerCase())!=-1))
b+=a.charAt(n);
}
return b;
}
}
:)

my.opera.com/phicar

fulapol

  • Administrador
  • Mensajes: 23
    • Ver Perfil
    • Email
Re: Vigenere
« Respuesta #1 : diciembre 22, 2009, 05:47:21 am »
Bien otra ves poniendo la traduccion a un lenguaje real (no es que java no sea real solo que es semi-interpretado y le tengo recelo), el cosigo en C++, aunque como repito, esta un poco optimizado y se comprendo, por lo menos para mi, mas que el que esta en Java

[code=cpp]/************************************************
*  Nombre : Vigenere.cpp                        *
*                                               *
*  Cifrado de cesar de sustituci

Phicar

  • :P
  • Administrador
  • Mensajes: 283
  • (1+sqrt(5))/2
    • MSN Messenger - diego_villahacker@hotmail.com
    • Ver Perfil
    • Phicar's Blog
    • Email
Re: Vigenere
« Respuesta #2 : diciembre 22, 2009, 02:53:57 pm »
:P en este no veo la optimizacion....

Yo programo en Java por rapidez, por lo general hago programas de matematicas, asi que no me viene bien setear memoria cada vez que se me presentan cosas de pensar ;), aparte las clases de estructuras de datos tienen muy buenas herramientas :D

jejej

Saludos loco.

:)

my.opera.com/phicar

00000000

  • Administrador
  • Mensajes: 137
    • Ver Perfil
    • Email
Re: Vigenere
« Respuesta #3 : diciembre 22, 2009, 03:34:40 pm »
jeje hagalo con apuntadores y se come a java :P (alguno sabe de un buen binder :S es para el ricura que ya esta :P)
Desarrollador de  UPL:Unified Pr0n Language



creand0 and0

[D-m-K]

  • Administrador
  • Mensajes: 229
  • [-.|.-]
    • MSN Messenger - d4rk.m0nk3y@hotmail.com
    • Ver Perfil
    • Red Informatica Colombiana
    • Email
Re: Vigenere
« Respuesta #4 : diciembre 23, 2009, 12:03:27 pm »
Clase de la cifra de Vigenere en PHP

[code=php]
<?php
/******************************************************************************
 * Nombre : Vigenere.php
 * Clase para el cifrado de Vigenere para redinfocol. Este es un cifrado de
 * sustituci
:: Todas las grandes cosas que se disfrutan son el producto de las pequeñas cosas que se logran ::