Come identificare l'algoritmo di crittografia per i dati che arrivano nei valori campo / attributo di un xml [duplicato]

2

Ho dati in arrivo sotto forma di XML con determinati attributi XML che vengono crittografati. Sono molto nuovo alla crittografia / decrittografia. Quindi mi piacerebbe una spiegazione dettagliata su come trovare l'algoritmo di crittografia, se non vi è alcuna applicazione su questi dati. O è qualche altra forma di formato codificato? Si prega di fare qualsiasi domanda relativa ai dati, sarei più che felice di aiutare su questo. I dati crittografati di esempio hanno questo aspetto:

7b5c727466315c616e73695c616e7369637067313235325c64656666305c6465 666c616e67313033337b5c666f6e7474626c7b5c66305c666e696c2054696d6573204e657720526f6d616e3b7d7b5c66315c666e696c5c 66636861727365743020417269616c3b7d7b5c66325c666e696c5c6663686172736574302054696d6573204e657720526f6d616e3b7d7d 0d0a7b5c636f6c6f7274626c203b5c726564305c677265656e305c626c7565303b7d0d0a5c766965776b696e64345c7563315c70617264 5c6366315c66305c667332305c7061720d0a5c6366305c6631204c6f74204e696e65202839292c206f66204245415220435245454b2050 4f4c4f2052414e43482c20616e206164646974696f6e20696e20456c6c697320436f756e74792c2054657861732c206163636f7264696e 6720746f20746865206d6170206f7220706c61742074686572656f66207265636f7264656420696e20436162696e657420432c20536c69 6465204e6f2e20343535206f662074686520506c6174205265636f726473206f6620456c6c697320436f756e74792c2054657861732e5c 6366315c66325c7061720d0a7d0d0a00

    
posta Joy 06.08.2014 - 10:39
fonte

2 risposte

2

Questo è semplicemente ASCII rappresentato in hexidecimal. Ho rimosso le newline e il seguente codice python lo mostrerà:

>>> from binascii import unhexlify
>>> ascii = "7b5c727466315c616e73695c616e7369637067313235325c64656666305c6465666c616e67313033337b5c666f6e7474626c7b5c66305c666e696c2054696d6573204e657720526f6d616e3b7d7b5c66315c666e696c5c66636861727365743020417269616c3b7d7b5c66325c666e696c5c6663686172736574302054696d6573204e657720526f6d616e3b7d7d0d0a7b5c636f6c6f7274626c203b5c726564305c677265656e305c626c7565303b7d0d0a5c766965776b696e64345c7563315c706172645c6366315c66305c667332305c7061720d0a5c6366305c6631204c6f74204e696e65202839292c206f66204245415220435245454b20504f4c4f2052414e43482c20616e206164646974696f6e20696e20456c6c697320436f756e74792c2054657861732c206163636f7264696e6720746f20746865206d6170206f7220706c61742074686572656f66207265636f7264656420696e20436162696e657420432c20536c696465204e6f2e20343535206f662074686520506c6174205265636f726473206f6620456c6c697320436f756e74792c2054657861732e5c6366315c66325c7061720d0a7d0d0a00"
>>> unhexlify(ascii)
'{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil Times New Roman;}{\f1\fnil\fcharset0 Arial;}{\f2\fnil\fcharset0 Times New Roman;}}\r\n{\colortbl ;\red0\green0\blue0;}\r\n\viewkind4\uc1\pard\cf1\f0\fs20\par\r\n\cf0\f1 Lot Nine (9), of BEAR CREEK POLO RANCH, an addition in Ellis County, Texas, according to the map or plat thereof recorded in Cabinet C, Slide No. 455 of the Plat Records of Ellis County, Texas.\cf1\f2\par\r\n}\r\n\x00'

Le cose da riconoscere sono i caratteri 0x0a, 0x0d ASCII alla fine che rappresentano rispettivamente un avanzamento riga e un ritorno a capo. Inoltre, molto del testo è compreso tra 0x41 e 0x5A (A-Z), e 0x61 su 0x7A (a-z).

Per rispondere alla tua domanda sul riconoscimento della crittografia. A meno che il protocollo di comunicazione o il formato del file non ti forniscano il tipo di algoritmo, in genere non c'è modo di distinguere un algoritmo di crittografia da un altro solo sulla base di dati crittografati. Per i file può essere fornito in un valore di intestazione del file. Dovresti comunque sapere quale valore nell'intestazione rappresenta un algoritmo di crittografia, e quindi dovrai determinare quale algoritmo rappresenta il valore. Per i protocolli di comunicazione sicuri, gli algoritmi sono generalmente negoziati durante l'inizializzazione del protocollo.

    
risposta data 06.08.2014 - 13:29
fonte
1

La maggior parte dei metodi di crittografia lascia qualcosa come un'impronta digitale, ad esempio: fissa la prima coppia di caratteri; lenth di hash; eccetera. In tal modo è possibile determinare l'algoritmo utilizzato ...

Non ho trovato una documentazione particolare o un articolo da una rapida ricerca su google, ma mi sono imbattuto in uppon seguendo il progetto (semplice script python):

link

Controllalo - forse indovina correttamente gli hash: -)

    
risposta data 06.08.2014 - 13:33
fonte

Leggi altre domande sui tag