Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Componente gambas de md5sum
#1

Hola.
En la terminal de Linux, como saben, se puede usar el comando checksum o sha512sum para crear sumas de verificación den archivos.
md5sum filename > md5sums.txt

¿Como se puede obtener lo mismo pero dentro de gambas sin usar la shell o exec, es decir sin recurrir a la terminal?

¿Existe algún componente que lo haga?

Le eche un vistazo a gb.crypt pero no parece servir para lo mismo.

1 Saludo.
    ¡Gracias!
#2

Que yo sepa, no existe.


Saludos

No podemos regresar
    ¡Gracias!
#3

De cualquier modo quisiera señalar este debate:

https://www.gambas-it.org/smf/index.php?topic=1523.0

y tambien:
https://www.gambas-it.org/smf/index.php?...4#msg13654
(Añado también el archivo del código de Leo72)


Archivos adjuntos
.gz clsHC256.class.tar.gz Tamaño: 1.37 KB  Descargas: 4

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
[-] Los siguientes 2 usuarios dicen gracias a vuott por este post:
  • Shordi, tincho
    ¡Gracias!
#4

(22-08-2022, 13:50)vuott escribió:  ...el archivo del código de Leo72

Lo descargue, intento usarlo y creo que la función (dentro de la clase) que debo usar es:
GAMBAS
  1. Public Function ProcessHC256(InputData As Byte[], count2048 As Integer, Pp As Integer[], Qq As Integer[]) As Byte[]


Pero... ¿Como consigo la variable InputData As Byte[] a partir de un archivo?
y ¿Como logro una cadena de texto a partir de la variable OutputData As New Byte[]?

1 Saludo.
    ¡Gracias!
#5

(23-08-2022, 10:26)tincho escribió:  ¿Como consigo la variable InputData As Byte[] a partir de un archivo?
Señalo esta pagina:
https://www.gambas-it.org/wiki/index.php...di_un_file

(23-08-2022, 10:26)tincho escribió:  ¿Como logro una cadena de texto a partir de la variable OutputData As New Byte[]?

Tienes que usar el Metodo ".ToString()" del array de tipo Byte[ ].
https://gambaswiki.org/wiki/comp/gb/byte...tring?l=es

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#6

He vuelto con este tema.
Creo que ya obtengo InputData As Byte[] ¿Como obtengo los otros parámetros?

count2048 As Integer
Pp As Integer[]
Qq As Integer[]

1 Saludo.
    ¡Gracias!
#7

(03-11-2022, 00:42)tincho escribió:  Como obtengo los otros parámetros?

Intento escribir al autor de esa Clase clsHC256.class, para que él explique cómo usar la función específica "ProcessHC256()".

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
[-] Los siguientes 1 usuarios dice gracias a vuott por este post:
  • tincho
    ¡Gracias!
#8

(03-11-2022, 13:53)vuott escribió:  Intento escribir al autor de esa Clase clsHC256.class, para que él explique cómo usar la función específica "ProcessHC256()".

Gracias.

1 Saludo.
    ¡Gracias!
#9

Recibí la respuesta del autor de esa clase "clsHC256.class".
La pego aquí en el idioma original (italiano).

« Per capire come funziona quella... funzione e perché si chiama in quel modo bisogna prima sapere come opera l'algoritmo in questione.
L'HC256 è un cifrario a flusso (stream-cipher) che opera creando un flusso continuo di byte pseudo-casuali con il quale viene cifrato il messaggio originale.
Tecnicamente, l'HC-256 lavora con una chiave a 256 bit e con un IV (initialization vector) sempre a 256 bit. Internamente, consiste di 2 tabelle segrete P e Q generate a partire dalla chiave immessa dall'utente e composte ognuna da 1024 numeri interi a 32 bit. Ad ogni iterazione viene aggiornato 1 numero di ogni tabella: dopo 2048 iterazioni, tutti i numeri delle 2 tabelle sono stati aggiornati. Per tenere il punto uso una variabile contatore.
La codifica e decofica si basano sullo stesso codice: viene generato un intero a 32 bit utilizzando una funzione di mappatura a 32 bit simile alla funzione di output del Blowfish.
Alla fine del processo viene generata una funzione lineare di mascheramento a bit che è applicata per generare un intero a 32 bit di output.
Utilizza anche 2 funzioni dell'SHA-256 ma sempre in abbinamento alle tabelle P e Q come fossero S-Box.

Quindi, istanziata la classe:

Dim cHC256 As New ClsHC256
 
Si dichiarano le variabili:
Dim KeyHC256 As New Integer[]
Dim IV As New Byte[]
Dim chiave As String Dim P As Integer[1024] Dim Q As Integer[1024]
Dim Counter2048 As Integer

 
bisogna inizializzare lo stato interno dell'algoritmo:
keyHC256 = cHC256.KeySetup(cv_String2Bytes(chiave), lunchiave, 256) iv.Resize(256 / 8) cHC256.IVsetup(keyhc256, iv, 256, p, q, Counter2048)
 

"lunchiave" è la lunghezza in bit (si ottiene moltiplicando la lunghezza della stringa chiave per 8)
"String2bytes" sono 2 funzioni che servono a trasformare la stringa di testo da cifrare o la chiave in un array di byte (da &00 a &ff).
 
Una volta fatto questo si può passare a codificare i dati:

String temp = cv_Bytes2String(cHC256.ProcessHC256(cv_String2Bytes(stringa_temp), Counter2048, p, q))
 
Anche qui "bytes2string" è una funzione che ritrasforma l'array di byte in una stringa. »

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
[-] Los siguientes 1 usuarios dice gracias a vuott por este post:
  • tincho
    ¡Gracias!
#10

(05-11-2022, 15:44)vuott escribió:  Recibí la respuesta del autor de esa clase "clsHC256.class".
La pego aquí en el idioma original (italiano).

Gracias Vuott. Pongo aquí la traducción que hice por si a alguien le viene mejor.

Para entender cómo funciona esa función y por qué se llama así, primero hay que saber cómo opera el algoritmo en cuestión.
El HC256 es un cifrado de flujo que funciona creando un flujo continuo de bytes pseudoaleatorios con los que se cifra el mensaje original.
Técnicamente, el HC-256 funciona con una clave de 256 bits y un IV (vector de inicialización) de 256 bits. Internamente, consta de 2 tablas secretas P y Q generadas a partir de la clave introducida por el usuario y cada una compuesta por 1024 enteros de 32 bits. En cada iteración, se actualiza 1 número de cada tabla: después de 2048 iteraciones, se han actualizado todos los números de las 2 tablas. Para mantener el punto utilizo una variable de contador.
La codificación y la descodificación se basan en el mismo código: se genera un entero de 32 bits mediante una función de mapeo de 32 bits similar a la función de salida de Blowfish.
Al final del proceso, se genera una función lineal de enmascaramiento de bits y se aplica para generar un entero de salida de 32 bits.
También utiliza 2 funciones de SHA-256 pero siempre en conjunto con las tablas P y Q como si fueran S-Boxes.

A continuación, instancie la clase:
GAMBAS
  1. Dim cHC256 As New ClsHC256


 
Se declaran las variables:
GAMBAS
  1. Dim KeyHC256 As New Integer[]
  2. Dim IV As New Byte[]
  3. Dim chiave As String 
  4. Dim P As Integer[1024]
  5. Dim Q As Integer[1024]
  6. Dim Counter2048 As Integer


 
el estado interno del algoritmo debe ser inicializado:
GAMBAS
  1. keyHC256 = cHC256.KeySetup(cv_String2Bytes(chiave), lunchiave, 256) iv.Resize(256 / 8) cHC256.IVsetup(keyhc256, iv, 256, p, q, Counter2048)


 
"lunchiave" (longitud) es la longitud en bits (se obtiene multiplicando la longitud de la cadena de claves por 8)
"String2bytes" son 2 funciones que se utilizan para transformar la cadena de texto a cifrar o la clave en una matriz de bytes (&00 a &ff).
 
Una vez hecho esto, se puede pasar a codificar los datos:
GAMBAS
  1. String temp = cv_Bytes2String(cHC256.ProcessHC256(cv_String2Bytes(stringa_temp), Counter2048, p, q))


 
De nuevo, 'bytes2string' es una función que transforma la matriz de bytes de nuevo en una cadena.

1 Saludo.
[-] Los siguientes 2 usuarios dicen gracias a tincho por este post:
  • alberto-moyano, jguardon
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)