Oppure

Loading
12/09/13 13:47
caiser
Salve gente volevo chiedervi un informazione.

Ho provato tantissimi sistemi di scrittura di file per c#

FileStream, StreamWriter, BinaryWriter ma nulla....

Provato a dare come Enconding.Ascii ma ancora non ho capito come si fanno a criptare file di questo genere:

‰PNG


IHDR ô } #¡¸     pHYs .# .#x¥?v IDATxœì\\SWI!        àüÄu1Ä:Š[´j8@Aü(Úë@œU´®VĊÛ:ªUënU«EÁ{á("²    I!Éw΃_â     Ԏóû½ß]çŽsÿ÷Ý{Ͻç=+­VKýSÉê}7€P^W+®¦á¼Ë:+LøOš7—]NHvþ´Sª
Wf}ôD|e£ÌrŽVl_ìŽu{±qÛmgc|9Ê,ÊÁÑÑ"T!Ÿ>u*@$Jџ–ú²ú̈́»tÃ;)V×èœìl-
QìB<¤çÊèÛ–ÜÒí´˜ðãGw¸½î·ÑŸžž^=+3«Ò×Ûß¼s‡ÃÖp<7'GÃårSž=Þ«uª*=«å©|˜<Ì¢¨,JlӁâñxÙê=Ôëéº-7ꔥÍ>úÛsMˆ@PÐj|пuóºÉN•ŒêݧÏÃ<.t€Zìؙ‰D‹…¤(i^Þ]µZÝÐpxs…I5ðäK¥¿‹ìíÛ0ÓÖ­Iª]Ö6[Dx![JohçååUnݲeú-DÈÃÍM+
eù2™Ä!AðˆŸk/7b–Ïì¶÷­~sHOø¬ÕßÎÉ\µbnýûÏô
xР¶Ö0Žúlú$öçb¿X,Î8wáB
’FŽŽZµÄT9šœœJ¼½2Hdø›Êw÷éõÂFn¦¸^“žðN&ÏCáõ’/•˜Uôø†-Y••J¥ ( à
3éoï á£Ð?~â¤i¦Šâ:8dšU'©Z(CÙhcÊ"8ÒÃ{›‰4WdŸËLן¥‹ÑK$õÑåp8é
¹œŠ;xP—ïn3ˆÏ†øMÐ1ÃHUaaˆµÍväƒt9 ![ Šoø|þÒ¼ÜÜWPOU¹L ÂögÖoccÃl¯ `>ä›]Ú¨Ñ>ÿÈÁ QÏÞ»I˜m¸³3öÃ7¨·žÃ윈®@0/“ɶ9€ð¯gsvâÛÙ}ÅtQpc¼zù@pS<z§N¿«>oˆ>!@k µÍ°@å©P(l8QôV@ã¿dÆ¡mùü(s7-°2±1Å÷ÚF&B=á«F̟DüÂv~!þÚû}’·w×qÀÀÐ ¹ÄÆÑg×é-Ÿ·†½”.X£Ñ ðþ€8=@w¨Ì\¡P


esempio trascinando un file png nel blocco notes appare questo.

esiste un algoritmo o sistema per criptare il contenuto di un file in questo modo?

non cerco librerie, cerco un sistema per criptare dati come stringhe in questo modo.

è possibile farlo?
Ultima modifica effettuata da caiser 12/09/13 13:48
aaa
12/09/13 14:05
ZioCrocifisso
I file PNG non sono stringhe, né sono criptati, sono dati binari (compressi).
Se intepreti un file immagine come se fosse un file di testo, ovvio che dà quei risultati strambi.
Ultima modifica effettuata da ZioCrocifisso 12/09/13 14:06
aaa
12/09/13 14:06
tasx
Ciao!

Il testo che ti viene fuori non è criptato semplicemente non è testo...
Quelli sono i dati dell'immagine e blocco note converte i byte dell'immagine in caratteri ascii, ma visto che l'immagine non è testo i caratteri che vengono fuori non hanno senso.

Comunque per rispondere alla tua domanda guarda qui

social.msdn.microsoft.com/Forums/vstudio/en-US/d6a2836a-d587-4068-8630-94f4fb2a2aeb/…

e qui

stackoverflow.com/questions/202011/…

ciao!
aaa
12/09/13 14:07
Saik
Ciao Caiser..
Non puoi criptare le stringhe di file png o jpg o qualsiasi altro formato che non sia txt( o uno simile) per il semplice fatto che in questo tipo di file sono progettati a basso livello e quindi non sono formati da stringhe (scusa il gioco di parole) infatti se provi a salvare il file dopo averlo aperto con il blocco note e averlo salvato ti renderai conto che non è piu' integro ma ci sono dei byte mancanti . Puoi criptare un file del genere utilizzando algoritmi che criptano dei blocco di byte come quello di Rinjandel(mi sembra ci sia una libreria apposita nel framework).

aaa
12/09/13 15:44
caiser
Capito grazie a tutti per le risposte.

Chiedevo perchè spiego subito.

Guardando altre applicazioni o semplicemente file di salvataggio tipo giochi etc.
aprendo un file .dat ( estensione usata per i salvataggi di numerosi giochi ) trovo gli stessi simboli e frammenti di carattere senza senso.

Mi era sorto questo dubbio.

Siccome in quei file vengono memorizzati esempio:
Livello di gioco, Healt Point, etc.. dovranno pur essere file leggibili dal programmatore.

La maggior parte di noi utilizza semplicemente file di testo con estensione modificata, testo criptato oppure file xml.

Secondo voi, Potrebbe essere una sorta di database locale?
aaa
15/09/13 12:45
netarrow
Guardando altre applicazioni o semplicemente file di salvataggio tipo giochi etc.
aprendo un file .dat ( estensione usata per i salvataggi di numerosi giochi ) trovo gli stessi simboli e frammenti di carattere senza senso.
...
Siccome in quei file vengono memorizzati esempio:
Livello di gioco, Healt Point, etc.. dovranno pur essere file leggibili dal programmatore.

La maggior parte di noi utilizza semplicemente file di testo con estensione modificata, testo criptato oppure file xml.
...


Credo che quello dove fai confusione è sul fatto che il testo, le stringhe e i caratteri siano "il formato base" di un file, su cui uno creano gli altri. Non è così.

Sotto c'è sempre un flusso di bit, cioè 0 e 1, raggruppati 8 a 8, cioè byte, che vengono interpretati diversamente dal software che li legge e ne dà una rappresentazione all'utente.

Se io voglio scrivere un file di testo alla fine quello che arriva sotto è questo flusso di byte (si usa l'esadecimale, in binario o decimale sarebbe troppo lungo per grosse mole di dati):

63 69 61 6F

Se li apri con un editor di testo li convertirà in "ciao". Perchè per il testo di base, come fa notepad, si segue la ascii table asciitable.com/

Se uno vuole salvare lo stato di un software, prendiamo l'esempio del gioco come dici tu, per semplificare mettiamo che uno decida che la struttura è Vite 1 byte, Livello 1 byte. E che uno salvi lo stato 100 vite, livello 40.
Avrà

64 28

Ora aprendo questo con un editor di testo lui ti mostra: d(

E se il valore esadecimale non ricade nella tabella caratteri usata dal programma di testo, vedresti un quadratino bianco.
Se poi l'editor di testo usasse la taballe UNICODE per risolvere i byte in caratteri userebbe tutti questi caratteri:
unicode-table.com/en/

Senza alcun senso.

In questo caso andrebbe usato un editor esadecimale, e bisognerebbe sapere la convenzione con cui i byte sono stati strutturati, cioè sapere che il primo byte sono le vite, il secondo il livello.

Portando questo banale esempio a situazioni più complesse, immagini, formati più complessi eccetera, capirai perchè vengono fuori quei caratteri, ovvero hai aperto i dati col programma sbagliato, tutto qui.

Spero che ora ti sia più chiaro.

Ti consiglio di lasciare perdere per ora la cifratura e decifratura, credo che ti farebbe solo più confusione.
Prova a salvare a mano i byte dentro ad un file e a rilevverli correttamente ricostruendo le informazioni nel tuo softare.
Poi magari provare la serializzazione binaria e solo infine provare un pò a cifrare i dati.
aaa