› Foros › PC › Software libre
#!/bin/bash
if [ "$1" = "-e" ]
then
if [ -f $2 -a -r $2 ]
then
if [ "$3" != "" ]
then
if [ -f $3 -a -w $3 ]
then
echo "Si continua sobrescribira el archivo $3 ? S/N "
read resul
if [ "$resul" = "n" ]
then
exit
else
if [ "$resul" = "s" ]
then
echo "El archivo $2 esta siendo encriptado"
fi
fi
fi
NUMLINEAS=`wc -l $2 | tr -s " " | cut -d" " -f2`
I=1
while [ $I -le $NUMLINEAS ]
do
head -$I $2 | tail -1 > Linea.tmp
cat Linea.tmp | tr -d "\n" > Linea.tmp
NUMCARACT=`wc -c Linea.tmp | tr -s " " | cut -d" " -f2`
NUMCAC=`expr $NUMCARACT / 6`
NUMBACK=`expr $NUMCARACT % 6`
if [ $NUMBACK -ne 0 ]
then
NUMCAC=`expr $NUMCAC + 1`
fi
MATRIS=`expr $NUMCAC "*" 6`
RELOADED=`expr $MATRIS - $NUMCARACT`
Z=1
while [ $Z -lt $RELOADED ]
do
echo -e " \c" >> Linea.tmp
Z=`expr $Z + 1`
done
echo " " >> Linea.tmp
X=1
Y=6
while [ $X -le $NUMCARACT ]
do
cat Linea.tmp | cut -c$X-$Y >> Linea2.tmp
A=1
while [ $A -le 6 ]
do
cat Linea2.tmp | cut -c$A > Line$A.tmp
A=`expr $A + 1`
done
X=`expr $X + 6`
Y=`expr $Y + 6`
done
I=`expr $I + 1`
done
rm Linea2.tmp
rm Linea.tmp
paste Line4.tmp Line2.tmp Line5.tmp Line6.tmp Line1.tmp Line3.tmp | tr -d "\t">> $3
else
if [ -w $2 ]
then
echo "Si continua se sobreescribira el archivo $2 ? S/N"
read resul
if [ "$resul" = "n" ]
then
exit
else
if [ "$resul" = "s" ]
then
echo "El archivo $2 esta siendo encriptado sobre si mismo"
fi
fi
fi
fi
fi
else
if [ "$1" = "-d" ]
then
if [ -f $2 -a -r $2 ]
then
if [ "$3" != "" ]
then
if [ -f $3 -a -w $3 ]
then
echo "Si continua sobreescribira el archivo $3 ? S/N"
read resul
if [ "$resul" = "n" ]
then
exit
else
if [ "$resul" = "s" ]
then
echo "Se desencriptara $2 sobre el mismo"
NUMLINEAS=`wc -l $2 | tr -s " " | cut -d" " -f2`
I=1
while [ $I -le $NUMLINEAS ]
do
head -$I $2 | tail -1 > Linea.tmp
cat Linea.tmp | tr -d "\n" > Linea.tmp
NUMCARACT=`wc -c Linea.tmp | tr -s " " | cut -d" " -f2`
NUMCAC=`expr $NUMCARACT / 6`
NUMBACK=`expr $NUMCARACT % 6`
if [ $NUMBACK -ne 0 ]
then
NUMCAC=`expr $NUMCAC + 1`
fi
MATRIS=`expr $NUMCAC "*" 6`
RELOADED=`expr $MATRIS - $NUMCARACT`
Z=1
while [ $Z -lt $RELOADED ]
do
echo -e " \c" >> Linea.tmp
L=`expr $Z + 1`
done
echo "" >> Linea.tmp
X=1
Y=6
while [ $X -le $NUMCARACT ]
do
cat Linea.tmp | cut -c$X-$Y >> Linea2.tmp
A=1
while [ $A -le 6 ]
do
cat Linea2.tmp | cut -c$A > Line$A.tmp
A=`expr $A + 1`
done
X=`expr $X + 6`
Y=`expr $Y + 6`
done
I=`expr $I + 1`
paste Line5.tmp Line2.tmp Line6.tmp Line1.tmp Line3.tmp Line4.tmp | tr -d "\t" | tr -d "\n" > mr.txt
echo "" >> mr.txt
cat rm.txt > $3
done
fi
fi
fi
fi
fi
fi
if [ "$1" != "-d" -o "$1" != "-d" ]
then
echo "Los parametros que ha introducido son erroneos"
echo "use -e para encriptar y -d para desencriptar"
fi
fi
Escrito originalmente por billyberjas
eres un patán ;)
Y en vez de encerrar el código entre bloques PHP , enciérralo entre bloques CODE. Se verá muusho mejor.
No entiendo mu bien tu pregunta. LLega a encriptar? al descricptar te sale lo antiguo pero sin el salto de línea???
Explocalo mejor plis
Escrito originalmente por billyberjas
pozí, el problema está en los pastes
si te fijas rm.txt (que en el post está bailado el nombre un par deveces) contiene ya las lineas "pegadas", y si le pones una nueva linea, se la vas a añadir al final....
Tienes q buscarte la vida para añadir el "\n" al final de cada iteración del bucle (en el q no me he metido a verlo)...
Nu sé si me excplico...pero seguro q te haces una idea.
El paste está "pasteando" TODO el documento.