CryptDecode con modificador CRYPT_ARCH_ZIP - ¿Cómo utilizarlo? - página 3

 
Mikalas:

¡Vasiliy!

¿No está roto el archivo?

No, no lo es. Hecho por mí personalmente a través de 7zip para la prueba.

Sanya se dio cuenta correctamente: CryptDecode sólo descodifica la parte comprimida del archivo, pero cómo hacer que descodifique esta parte comprimida sigue siendo un misterio.

 

Subir a

7zip y zip simple

¿Tal vez 7zip no es compatible?

 
Mikalas:

Subir a

7zip y sólo zip

El empaquetador es 7zip, el archivo es zip. Otros empaquetadores dan el mismo resultado. Puede comprobarlo usted mismo. Tome cualquier archivo, empaquételo con cualquier empaquetador zip. Intente descomprimir el archivo resultante (.zip) con CrypеDecode. - Obtendremos un error de desempaquetado. Pero la pregunta no es ni siquiera sobre el error de desempaquetar todo el archivo, la pregunta es cómo configurar CryptDecode para poder desempaquetar la partición empaquetada del archivo zip.
 
C-4:
El empaquetador es 7zip, el archivo es zip. Otros empaquetadores dan el mismo resultado. Puede comprobarlo usted mismo. Tome cualquier archivo, empaque con cualquier empaquetador zip. Intente descomprimir el archivo resultante (.zip) con CrypеDecode. - Obtendremos un error de desempaquetado. Pero la pregunta no es ni siquiera sobre el error de desempaquetar todo el archivo, la pregunta es cómo configurar CryptDecode para poder desempaquetar la partición empaquetada del archivo zip.

:)

Su archivo no se abre.

ir a

if ( handle != INVALID_HANDLE )
 
C-4:
pregunta cómo configurar CryptDecode para poder descomprimir una partición empaquetada de un archivo zip.

puede ayudar

http://blog2k.ru/archives/3392

Чтение ZIP файла
  • 2014.06.04
  • Евгений Жирнов (jirnov@gmail.com)
  • blog2k.ru
Алгоритм получения данных из ZIP файла: находим запись EOCDзагружаем записи Central directory file headerдля каждой Central directory file header, находим и загружаем Local File Headerданные располагаются сразу после Local File Header, иногда размер данных записывается после самих данных в структуру Data descriptor, об этом сигнализирует флаг...
 

¡Vasiliy!

No lo has hecho bien, pero tampoco funciona bien :(

Error interno inesperado:

uchar array[];
   uchar key[];
   uchar result[];
   int handle = FileOpen( "test.zip", FILE_READ|FILE_BIN );
   if ( handle != INVALID_HANDLE )
   {
     uint array_size = FileReadArray( handle, array );
     FileClose( handle );
     
     Print( "Read totals: ", array_size );
     ArrayResize( key, array_size );
     for ( int i = 0; i < int( array_size ); i++ ) key[i] = 0;
     ResetLastError();
     int d = CryptDecode( CRYPT_ARCH_ZIP, array, key, result );
   
    if ( d < 1 )
     {
       Print( GetLastError() );
     } 
   }
 
Mikalas:

¡Vasiliy!

No lo has hecho bien, pero tampoco funciona :(

Lo hice bien. El archivo no se abre porque debería estar en el directorio COMÚN, es más conveniente para mí.

La clave[] no tiene que coincidir con el tamaño de la fuente.

sanyooooook:

puede ayudar

http://blog2k.ru/archives/3392

No puedo invertir en el desarrollo de una clase para leer zip a menos que tenga la documentación a mano y esté seguro de que la función CryptDecode descomprimirá correctamente la matriz comprimida. Manejar la estructura de un archivo zip es una tarea trivial. Lo que necesito entender es por qué los datos empaquetados en el zip regular no coinciden con el empaquetado de CryptDecode(). En otras palabras, hay que entender exactamente por qué las secciones amarillas de los dos archivos no coinciden:

 

E intenta crear un ZIP conCryptEncode(),

quizás MQ utilice su propio método de encriptación similar a ZIP

 
Mikalas:

E intenta crear un ZIP conCryptEncode(),

quizás MQ utilice su propio método de encriptación similar a ZIP

bueno, lo hace, y luego lo compara con la salida del archivador regular
 
C-4:

No puedo invertir en el desarrollo de una clase para leer un Zip a menos que tenga la documentación y la confianza de que la función CryptDecode descomprimirá correctamente la matriz comprimida. Tratar la estructura de un archivo zip es una tarea trivial. Lo que necesito entender es por qué los datos empaquetados del zip regular no coinciden con los datos empaquetados de CryptDecode(). En otras palabras, hay que entender exactamente por qué las secciones amarillas de los dos archivos no coinciden:

esperar una respuesta de MQ sería probablemente más rápido )
Razón de la queja: