Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - @XSStringManolo

#1461
Hay muchos troyanos para Android.
Te recomiendo buscar sobre malware en javascript porque es multiplataforma. Tienes malware que puede correr en muchísimas máquinas, o malware más especifico para cada plataforma. Puedes utilizarlo desde infectar a un sitio web y todos sus usuarios, hasta ransomware para windows, pasando por envenenamiento de cache a través de proxies, clickjacking, injección de formularios a través de fake AP para obtener claves de wi-fi, botnets, spiders, gusanos, miners, exploits...



https://heimdalsecurity.com/blog/javascript-malware-explained/amp/

https://nakedsecurity.sophos.com/es/2016/06/20/ransomware-thats-100-pure-javascript-no-download-required

 https://www.hackplayers.com/2016/03/sencillo-backdoor-en-javascript-scripts.html

https://www.pentestpartners.com/security-blog/lan-surfing-how-to-use-javascript-to-execute-arbitrary-code-on-routers/

https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XSS%20Injection/Intruders/BRUTELOGIC-XSS-STRINGS.txt

https://www.theregister.co.uk/2017/05/30/android_app_judy_malware/

https://www.trendmicro.com/vinfo/us/security/news/cybercrime-and-digital-threats/javascript-malware-in-spam-spreads-ransomware-miners-spyware-worm

https://github.com/HynekPetrak/javascript-malware-collection

https://unaaldia.hispasec.com/2019/09/descubierto-malware-de-suscripcion-a-servicios-premium-en-google-play.html

https://www.zdnet.com/article/android-security-this-malware-will-mine-cryptocurrency-until-your-smartphone-fails/

https://heimdalsecurity.com/blog/android-malware/

https://unit42.paloaltonetworks.com/new-android-trojan-xbot-phishes-credit-cards-and-bank-accounts-encrypts-devices-for-ransom/

https://www.pcmag.com/news/369472/agent-smith-android-malware-infected-25m-devices

https://www.enisa.europa.eu/publications/info-notes/malware-in-browser-extensions

https://threatpost.com/razy-browser-extensions-theft/141181/

https://kjaer.io/extension-malware/

https://atr-blog.gigamon.com/2018/01/18/malicious-chrome-extensions-enable-criminals-to-impact-half-a-million-users-and-global-businesses/

https://github.com/chentetran/xss-keylogger

http://websecurity247.blogspot.com/2016/07/keylogging-with-cross-site-scripting.html

https://blog.securelayer7.net/exploiting-browsers-using-pastejacking-and-xssjacking-vulnerability/

https://react-etc.net/entry/exploiting-speculative-execution-meltdown-spectre-via-javascript

https://deadliestwebattacks.com/tag/javascript/

https://blog.appsecco.com/nodejs-and-a-simple-rce-exploit-d79001837cc6?gi=897cd748c185

https://www.owasp.org/index.php/AJAX_Security_Cheat_Sheet

http://misclassblog.com/interactive-web-development/ajax-delivering-malware/

https://www.redeszone.net/2016/04/12/malware-escrito-javascript-modifica-la-configuracion-los-routers/

https://www.csoonline.com/article/3290420/html5-a-devil-in-disguise.html

https://www.hanselman.com/blog/IfMalwareAuthorsEverLearnHowToSpellWereAllScrewedTheComingHTML5MalwareApocalypse.aspx
#1462
Hardware / Re: Audifonos que suenan bajo
7 Octubre 2019, 17:07 PM
Suenan bajo por la sección, no por un corto. Al ser la unión de cables tan gorda, aumentas la resistencia que se está ofreciendo. Como soluciónmete cada punta en una ficha de empalme eléctrica. Igual tienen alguna por casa, son muy frecuentes.

Si se hiciese corto se escucharía como ruido de fondo. Y si fuese un problema del jack/plug-in se escucharían pocas frecuencias(algo así como solo los agudos de la canción, faltarían algunas vocales e instrumentos...)

Yo utilizo una solución alternativa. Pongo las puntas una encima de otra y les derrito cera de vela encima. Para que no se suelte al tirar, hago una dobladura o nudo en el cable antes, de tal forma que si se tira por cualquiera de los extremos, se apreta el nudo en vez de tirarse por los extremos.
Es tan sencillo de hacer como doblar el cable unos cuantos centímetros antes de la unión y atarlo con cinta o hacer el nudo.
Te hice un cable de ejemplo:


Puedes cubrir todo el cable de cera para aislarlo. Le derrites cera encima de una superficie plana, le soplas y ya endurece al momento y con un toquecito lo despegas de la superficie y le das la vuelta y repites el proceso.
Si usas cinta y se te cae un refresco encima la lías parda. La cera te hace de aislante. A parte para deshacer la unión le das un martillazo y listo. Yo la uso pa todo. Topes para el portátil para no rallar una superficie ni se deslice, soportes para apollar piezas como el chip del ratón, sujetar cables a una mesa(el celo o la cinta/tape deja marcas), etc.
#1463
Yo lo obligaría a comérselo crudo.
#1464
Foro Libre / Re: Términos extraños en inglés
7 Octubre 2019, 03:00 AM
In computer networking, a reliable protocol is a protocol which notifies the sender whether or not the delivery of data to intended recipients was successful.
Reliability is a synonym for assurance, which is the term used by the ITU and ATM Forum.
https://en.m.wikipedia.org/wiki/Reliability_(computer_networking)

En redes, un protocolo fiable es un protocolo que notifica al emisor si el envio de datos a los destinatarios fue exitoso o no.
Fiabilidad es un sinónimo de garantía, termino adoptado por ITU y ATM Forum.

El significado del termino depende más de lo que el emisor intentase int en la oración, que en el propio significado de cada palabra.
En base a esto entiendo:

"range of security assurance and verification"
Rango en el que puedes cerciorar que no se sale de la de la seguridad esperada.

Si yo contrato a una empresa de vigilancia, espero unos mínimos y que no se cuele el primer tonto de turno por la puerta principal.

"Deployment assurance"
Sin contexto yo lo entiendo como que se cumpla con el mínimo de despliegue lógico y esperado para el funcionamiento.

"security assurance component, wifi assurance"
Tal cual la oración la interpreto de 2 formas:
1- Un componente para que se cumpla con los requerimientos de seguridad.
Podría ser un contrato, una normativa... Un sistema de respaldo para wi-fi.

2-Un componente que asevera/certifica la seguridad. Monitorización de wi-fi o unos componentes que certifican que el servicio wi-fi es seguro o de calidad.

Yo el término assurance siempre lo he entendido como algo implícito. Por ejemplo si pagas 1000$ por una noche en un hotel, te esperas servicio de habitaciones, privacidad, seguridad, parking privado, piscina, limpieza...
A pesar de que el hotel no te diga nada de eso, es de esperar que en gran medida así sea.

En cambio si pagas 20$ como mucho te esperas que haya una cama.

Si pagas 1000$ por una noche y te dan un cuartucho lleno de mugre, no se cumpliría esa assurance.


Hay algunas palabras que no tienen traducción ninguna al español. O al traducirlas se pierde información vital. Una traducción no tiene porque ser conservadora con el lenguaje. Puedes transmitir lo mismo con tus palabras, parafrasear, citar, omitir, añadir, completar, resumir, etc.
Depende para que lo uses.

Asurance en algunos casos diría que puede ser traducido como soporte/asesoramiento/cuidado/garantía/aseveración...

Si pasas mayor parte del texto, y título del tema o capítulo te doy un traducción mucho más precisa.
#1465
Cita de: Alizamx en  4 Octubre 2019, 23:13 PM
Buenas tardes Songoku,
pero no veo que esta BIOS tenga donde configurarse para reestablecerse de fabrica :-\,
El BIOS recien lo actualicé a f.24 pero no aparece esa opción...
Incluso no aparece nada de que si es SATA ni nada. Esta muy basica
Y es que yo estoy desempleada por el momento, por eso estoy intentando arreglarla yo :(,
pero si no pues la dejaré hasta que tenga para pagar y que me la arreglen.
Te agradezco mucho tu aporte Songoku, que tengas una excelente tarde.

Si te surge algún problema durante la instalación o no das completado algún paso coméntalo y te ayudamos. Pasos a seguir:
-Descargar version 32bits de windows .iso desde su web oficial.

-Descargar Rufus desde su sitio oficial.

-Cuando se complete la descarga conectar pendrive al equipo.

-Comprobar la letra de unidad correspondiente al Pendrive. (Por ejemplo H:)
Lo puedes mirar en MiEquipo (atajo de teclado, tecla windows y la tecla E).

-Abrir el programa Rufus. En donde diga imagen de sistema, imagen, .iso o algo así le das a seleccionar y buscas el archivo windows-32.iso. Al darle a ese archivo te queda su nombre en el programa Rufus.

-En donde diga seleccionar unidad, o algo así, seleccionas la letra correspondiente a tu pendrive. Asegúrate que no tengas nada valioso porque se borrará todo el contenido del pendrive para meter el instalador de Windows en él.

-Aceptas y se empieza a instalar el instalador de windows en el pendrive. Una vez termine de instalarse ya tendrás el pendrive listo para instalar windows.

-Metes el pendrive en el ordenador que quieras instalar windows. Enciendes el ordenador y le das a la tecla (suele ser F2) repetidamente hasta que te entre en la configuración de la BIOS. Si ves que no te sale esta pantalla de configuración vuelve a apagar, encender y a darle a la tecla. Si sogue sin entrar prueba con otras teclas como (F11, F12, Supr, control supr, contol alt supr, alt supr, del, etc) Se te debería abrir la pantalla de la BIOS o el menú de selección de dispositivo de arranque. Si no te aparece el pendrive para seleccionarlo, apaga el equipo y desenchúfalo de la corriente un par de minutos. Mete el pendrive antes de volver a encenderlo.
En la pantalla de la BIOS busca donde te diga algo de orden de arranque.
Según la versión de la BIOS las teclas para cambiar el orden de arranque suelen ser distintas. Suelen ser las flechas, el enter, o F5 y F6. Estas últimas desplazan la opción que tengas marcada arriba o abajo respectivamente.
Una vez tengas seleccionado el pendrive como primero en el orden de arranque puedes moverte por la pantalla y buscar la opción Guardar Cambios y Salir o presionar la tecla indicada. (suele ser F10 por defecto)

-Una vez hecho esto debería reiniciarse solo el ordenador y entrar automáticamente en la carga del instalador de windows. Solo es esperar y seguir los pasos indicados. Cuando llegues a la parte de particiones dale a recomendado por sencillez. (no le des a manual que es bastante lioso y puedes darle mal los espacios y quedarte sin espacio en disco después para actualizaciones, etc).
Se desempaquetarán los archivos comprimidos de windows automáticamente y se empezará la instalación. Puede más adelante te pida varios datos como nombre del equipo, nombre de usuario, contraseña, etc.
También puede que se reinicie automáticamente el ordenador, es normal durante la instalación.
Todo el proceso de instalación se puede hacer con el teclado sin necesidad de raton. Tecla espacio para marcar checkboxes, enter para continuar y tab para marcar una opción o la siguiente. (Más rápido y cómodo que con teclado).

-Una vez todo instalado retiras el pendrive (para poder arrancar el sistema desde el disco duro, ya que el pendrive está como primero en el orden de arranque.) Puede que se reinicie alguna vez más, y las primeras veces que lo apagues tardará lo suyo debido a la instalación de actualizaciones.

Si vas a meter un "crack" para activar Windows, hay muchos que te infectan el ordenador con virus. Es mejor buscar la clave a mano. Las claves se generan únicamente en base a 2 factores. El fabricante de la placa base y la versión del sistema. Por ejemplo Asus para Windows7-pro32bits tiene distinta clave que Asus para Windows7home-32bits.
Sobre si eleguir pro, home, enterprise, etc. Son todas prácticamente iguales pero algunas traen algún programa preinstalado más de antemano. Desde el panel de control puedes decargarlos en cualquier momento, asique da igual.
#1466
En mi opinion Estados Unidos anda toreando a Korea del Norte y usándolo como herramienta política.
#1467
No se puede entrar de forma 100% segura y 100% anónima.
#1468
Estoy haciendo un proyecto en el que para aumentar la seguridad me decidí a diseñar e implementar mi propio cifrado de 0 sin guiarme por nada.
Por casualidad(o por sencillez) llegué a la misma conclusión que a la que llegó Vernan con su cifrado hace años. Asique en gran parte del proceso reinventé la rueda.
Entonces se puede considerar este código como una implementación del cifrado de Vernan.
Las funciones no están muy debugeadas ni testeadas. De momento me funcionan bien en los códigos que utilicé. Comenté su funcionamiento y varios factores a tener en cuenta para utilizar el cifrado de forma segura en el propio código.

El cifrado lo tengo todo diseñado en papel. Parte implementada en javascript y ahora lo estoy rescribiendo en PHP.
Publicaré en el foro otras partes del cifrado como el CSPRNG que estoy acabando de mejorar para obtener numerosas fuentes de entropia a partir de la propia clave. La implementación del método de transposición, etc.

Cualquier error en el código, duda, sugerencia, comentario u opinion es bienvenida.

Descripción breve:
SMTaD($stringCipherText);
-Pasa el texto de un string a su posición decimal en el abecedario.
Retorna un array con las posiciones.
"abcdefg" -> [1,2,3,4,5,6,7]
"hola" -> [8,16,12,1]

SMDpD($arrayDecimalDeTextoPorCifrar, $arrayContraseñaDecimal);
-Suma los valores de cada posición de ambos arrays.
Retorna un nuevo array con la suma de ambos.
La contraseña debe ser el mismo o mayor tamaño.
[8,16,12,1] + [1,2,3,4,5,6,7] -> [9,18,15,5]

SMDaT($arrayDecimal)
-Transforma cada grupo de decimales al texto correspondiente a esa posición en el abecedario.
Retrona un nuevo array con los caracteres correspondientes.
[9,18,15,5] -> ['i','q','ñ','e']

Se usan diccionarios para definir el "abecedario".


 
Código (php) [Seleccionar]
function SMTaD($cipherText)
  {

  $cipherTextTam = strlen($cipherText);
  $cipherText = strtolower($cipherText);
  $diccionario = array('a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','ñ','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C',
'D','E','F','G','H','I','J','K','L','M','N','Ñ','O','P','Q','R','S',
'T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0','.',
':','/',' ');
  $diccionarioTam = count($diccionario);
  $cipherTextDec = [];


  $y = 0;
     for($i = 0; $i < $cipherTextTam; ++$i)
     {
        for($x = 0; $x < $diccionarioTam; ++$x)
        {
           if($cipherText[$i] == $diccionario[$x])
           {
           $cipherTextDec[$y] = 1+$x;
           ++$y;
           }

           else
           {
           /*Caracter no está en el diccionario*/
           }
        }
     }
  return $cipherTextDec;
  }
/*StringManolo Texto a Decimal.
Esta función toma como argumento un
string $cipherText.

*Se recorre todo el string y se compara cada
caracter con los caracteres que contiene el diccionario.

*En el caso de que el caracter a comprobar del
$cipherText coincida con alguno de los caracteres
del diccionario, se añade a un array la posición de
ese caracter+1 (alfabéticamente) en el diccionario.

*Finalmente se retorna este array que hace referencia
al orden alfabético de cada caracter.

*EJEMPLO:
-Si $cipherText contiene la frase "Me van a cifrar".

1) -Se busca el caracter M en el diccionario.

-La letra 'M' ocupa la posición 40 en el diccionario.

-En el array diccionario 'M' en realidad corresponde al
índice 39. Debido a que el array utiliza el 0 como
primer índice y no el 1. Debido a esto se suma +1 para
obtener 40.

-Si no se encuentra 'M' en el diccionario o si
ya se añadio el numero 40 se pasa a la siguiente letra.

2) Se repite el proceso anterior para la letra 'e'.

3) El resultado final de pasar el string "Me van a cifrar"
seria el mismo que al hacer:
$TextoEnDecimal = array('40','5','68','23','1','14','68','1','68','3','9','6','19','1','19');
Hace referencia a: array('M','e',' ','v','a','n',' ','a',' ','c','i','f','r','a','r');

*Utilizo strToLower para convertir todas las letras mayúsculas
a minúsculas. Comenta o borra esa línea si te interesa mantener la
información original.

*Asegurate que todos los caracteres del
texto a cifrar estén contemplados en el diccionario.
Puedes crear una funcion para obtener todos los caracteres
distintos del texto a cifrar y crear el diccionario en base a ellos.
Así evitas comprobaciones innecesarias con caracteres que
sabes de antemano que no vas a encotrar.
Por ejemplo si aplicas base64 antes de la función, puedes
eliminar ' ',':','.' del diccionario y añadir '+','=' ya que sabes de
antemano que un texto cifrado en base64 no puede contener
espacios, dos puntos o puntos.

**Obtener una referencia numérica de las letras tiene entre
otras utilidades poder operar matemáticamente con los caracteres.
*/



  function SMDpD($decimal1, $decimal2)
  {
   
  $diccionario = array('1','2','3','4','5','6','7','8','9',
'10','11','12','13','14','15','16','17','18','19','20','21',
'22','23','24','25','26','27','28','29','30','31','32','33',
'34','35','36','37','38','39','40','41','42','43','44','45',
'46','47','48','49','50','51','52','53','54','55','56','57',
'58','59','60','61','62','63','64','65','66','67','68','69');
  $diccionarioTam = count($diccionario);
  $decimal1Tam = count($decimal1);
  $decimal2Tam = count($decimal2);
  $cipherTextSum = [];

     $y = 0;
     for($i = 0; $i < $decimal1Tam; ++$i)
     {
        for($x = 0; $x < $diccionarioTam; ++$x)
        {
           if($decimal1[$i] == $diccionario[$x])
           {
           $cipherTextSum[$y] = $decimal1[$i] + $decimal2[$y];
           ++$y;
           }
        }
     }
  return $cipherTextSum;
  }
/*StringManolo Decimal plus Decimal.
StringManolo Decimal + Decimal.
Esta función toma como argumentos 2 arrays
que contienen numeros y los suma.

Durante el diseño de este cifrado llegué a la
conclusión de que esta suma modular de 2 caracteres
ya se utilizaba por el Cifrado Vernan. El Cifrado Vernan
sentó las bases para otros cifrados de uso frecuente
a lo largo de la historia. Uno de los principios más
seguros es el conocido como Libreta De Un Solo Uso.
https://es.m.wikipedia.org/wiki/Libreta_de_un_solo_uso

IMPORTANTE:
Este cifrado está probado como irrompible bajo ciertas
condiciones. Esta implementación deja a cargo del
usuario de estas condiciones. Y algunas
consideraciones. Paso a comentar estos puntos a
continuación:
1)Se espera que se utilize como uno de los parámetros
de la función una cadena *Aleatoria del mismo o mayor
tamaño que el texto a cifrar.

En computación (sin entrar propiedades cuánticas)
es imposible generar un número totalmente aleatorio.

Para suplir este inconveniente se
recurre a utilizar algoritmos para generar numeros
pseudoaleatorios resistentes a criptoanálisis.
Estos algoritmos son conocidos como CSPRNG.
Algunos de los provados como más seguros son
aquellos que generan secuencias pseudoaleatorias
utilizaneo como entropia el "ruido de fondo" o "ruido"
ambiente captado por el micrófono.
En realidad puedes escribir letras aleatoria como clave
para el cifrado siempre y cuando:
-No sigas ningún patrón que se pueda replicar para
genear la clave que vas a utilizar.
-El cifrado lo debes generar en un equipo offline únicamente
dedicado para ello. En caso de que el equipo se conecte
a otros equipos, un atacante podría llegar a infiltrarse
en el sistema y obtener la clave utilizada.
El cifrado de la Libreta De Un Solo Uso se basa en que una
vez utilizada la clave esta se destruya.


2) El tamaño de la clave debe ser igual o mayor que el tamaño
del texto a cifrar.

Consideraciones:
-No deja de ser un cifrado de substitución. Si la
clave es insegura "aaaaaaaaa" o se tienen indicios del
idioma en el que se escribió el texto a cifrar, se pueden realizar
diversos analisis de frecuencia. Para eliminar esta posibilidad
recomiendo utilizar algún cifrado de transposición para desordenar
el texto a cifrar. Mas adelante recomiendo cual utilizar.

-No debe reutilizarse la clave ni dejar a un usuario cifrar con la misma
clave. Si estas utilizando la misma clave, por ejemplo
"abcdefghijk..." para cifrar un texto. Si dejas a un usuario
cifrar con ella, podría cifrar el texto "aaaaaaaaaaaaa..." y así
generar la clave +1 para cada caracter.

Siguiendo estos principios se espera que el primer parámetro de la
función sea un array con los decimales del texto a cifrar.
Y que el segundo parámetro sea la contraseña tambien en decimal.
Se pueden pasar strings a la función SMTaD(); para obtener el array
en decimal correspondiente.
Ejemplo:

$Saludo = "Hola";
$Contraseña = "ceaf";

$Saludo = SMTaD($Saludo);
$Contraseña = SMTaD($Contraseña);

$SaludoCifrado = SMDpD($Saludo, $Contraseña);

$SaludoCifrado = SMDaT($SaludoCifrado);

Sucede lo siguiente:
SMTaD($Saludo); devuelve el array 8,16,12,1
SMTaD($Contraseña); devuelve el array 3,5,1,6
SMDpD($Saludo, $Contraseña); devuelve el array 11,21,13,7

La siguiente función SMDaT($array); utiliza un diccionario para
convertir los decimales a texto.

SMDaT($SaludoCifrado); devuelve el array k,t,m,g

Puedes usar:
Un diccionario de 27 caracteres (a-z) y usar el operador módulo
o restar el tamaño del diccionario. En este caso a+z seria 28.
28-27 es 1.
1 es igual a 'a'.

Un diccionario de 54 caracteres (a-Z).
Un diccionario de 64 caracteres (a-9).

O un diccionario que contemple las máximas posibilidades.
En caso de solo operar con minúsuculas tanto en la clave
como en la contraseña (a-z) tendrías un valor máximo posible
de z+z (27+27). Es decir, puedes representar todos
los resultados en un diccionario de 54 caracteres.
Por ejemplo (a-Z). Así z+a = 28. que sería 'A'.
Esta última opción puede ser menos o más segura criptográficamente.
Pero sigue siendo irrompible si se siguen todas las pautas.
Ya que 'A' puede ser a+z, b+y, c+x, d+w, e+v, f+u ...
En conclusión 'A' puede ser cualquier letra del abecedario
en conjunto con otra letra opuesta (en relación con su orden alfabético).
Es difícil analizar que método es mejor.
Teoricamente ninguno da información relevante en el supuesto de
utilizar una clave aleatoria y cifrando por transposición el texto.

Debido a que la seguridad del cifrado se basa en el desconocimiento de la clave
por parte del atacante, recomiendo utilizar la propia clave para aplicar transposición
al texto que se va a cifrar, o al propio resultado del cifrado.
Siguiendo el ejemplo anterior:
texto -> h o l a
contraseña -> c e a f
resultado -> k t m g

Puedes utilizar el propio orden alfabético de la clave para reordenar el resultado:
c e a f -> 1c=2, 2e=3, 3a=1, 4f=4
k t m g -> 1k pos2, 2t pos3, 3m pos1, 4g pos4
resultado -> m k t g

*Esta funcion puede ser utilizada sin modificaciones para cifrar utilizando varios
cifrados comunes.
Por ejemplo para cifrar con cifrado Cesar introduce como clave la letra
que corresponda alfabéticamente al numero de vueltas.
$Saludo = "Hola";
$Contraseña = "bbbb";
$Saludo = SMTaD($Saludo);
$Contraseña = SMTaD($Contraseña);
$SaludoCifrado = SMDpD($Saludo, $Contraseña);
$SaludoCifrado = SMDaT($SaludoCifrado);
El resultado de cifrar hola con bbbb es j q n c.

Para cifrar con vigenere:
$Saludo = "Hola";
$Contraseña = "abcd";
$Saludo = SMTaD($Saludo);
$Contraseña = SMTaD($Contraseña);
$SaludoCifrado = SMDpD($Saludo, $Contraseña);
$SaludoCifrado = SMDaT($SaludoCifrado);
El resultado de cifrar hola con abcd es iqñe
en el diccionario incluí la ñ. Si la eliminas el
resultado seria el mismo que en el diccionario
inglés de uso común resultado -> iqoe.
Se obtiene el mismo resultado que cifrando hola
con vigenere y la clave bcde.
Con un par de modificaciones se puede conseguir el
mismo resultado.

Si quieres imprimir el contenido del array puedes usar:
foreach($SaludoCifrado as $value)
{
echo "$value" ;
}

Y para imprimirlo en un documento de texto:
file_put_contents("carpeta/resultado.txt", $SaludoCifrado, FILE_APPEND);

*/


  function SMDaT($cipherText)
  {
  $cipherTextTam = count($cipherText);

  $diccionario = array('a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','ñ','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C',
'D','E','F','G','H','I','J','K','L','M','N','Ñ','O','P','Q','R','S',
'T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0','.',
':','/','-','!','@','^','&','*','+','=','<','>','{','}','[',']','€','%','?','_','|',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','ñ','o','p','q','r','s',
't','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z'); $diccionarioTam = count($diccionario);

  $diccionario2 = array('1','2','3','4','5','6','7','8','9',
'10','11','12','13','14','15','16','17','18','19','20','21',
'22','23','24','25','26','27','28','29','30','31','32','33',
'34','35','36','37','38','39','40','41','42','43','44','45',
'46','47','48','49','50','51','52','53','54','55','56','57',
'58','59','60','61','62','63','64','65','66','67','68','69',
'70','71','72','73','74','75','76','77','78','79','80','81',
'82','83','84','85','86','87','88','89','90','91','92','93',
'94','95','96','97','98','99','100','101','102','103',
'104','105','106','107','108','109','110','111','112',
'113','114','115','116','117','118','119','120','121',
'122','123','124','125','126','127','128','129','130',
'131','132','133','134','135','136','137','138','139');
  $diccionario2Tam = count($diccionario2);

  $cipherTextText = [];

$z=0;
     for($i = 0; $i < $cipherTextTam; ++$i)
     {
        for($x =0; $x<$diccionarioTam; ++$x)
        {
           if($cipherText[$i] == $diccionario2[$x])
           {
           $cipherTextText[$z] = $diccionario[$x];
           ++$z;
           }
        }
     }
  return $cipherTextText;
  }



#1469
Hay ayuntamientos de 1000 habitantes con webs de 500.000 lineas de código.  :rolleyes:
#1470
Cita de: EdePC en  4 Octubre 2019, 17:36 PM
Saludos,

Código (javascript) [Seleccionar]
<html>
 <body>
   <‌‌scr‌‌ipt>
     var i = 0;
     stack();
     function stack() {
       ++i;
       document.write(i + " ");
       return overflow();
     }
     function overflow() {
       return stack();
     }
   </scr‌‌ipt>
 </body>
</html>


- Mínimo número: 1
- Máximo número: 6985
- Valor de incremento constante: +1
Qué hardware utilizaste?