2017-10-20 56 views
0

J'ai un problème avec le déchiffrement gpg où je décrypte & en effectuant quelques opérations de base sur les gros fichiers. Le fichier décrypté normal est de 60G & après décryptage il gonfle à 450G.gpg limite de taille de bloc de décryptage

Le déchiffrement, puis le remplissage de ligne (wc -l) est effectué uniquement dans la couche HDFS; ci-dessous est l'extrait de code

rowCount=`hdfs dfs -cat ${hdfsDir}/{fileName} | decrypt | wc -l` 

Le « Déchiffrer » ci-dessus doit être remplacé par le GPG --decrypt ... commande. Je ne l'ai pas écrit ici juste pour l'éviter. Pour les fichiers de petite taille comme 2 ~ 3Gigs, le code fonctionne bien. Mais pour les gros fichiers comme la taille je l'ai mentionné plus haut, le déchiffrement jette ci-dessous erreur:

gpg: block_filter 0x7f2cf62547c0: read error (size=14560,a->size=14560) 
gpg: block_filter 0x7f2cf624c990: read error (size=14900,a->size=14900) 
gpg: mdc_packet with invalid encoding 
gpg: decryption failed: Invalid packet 
gpg: block_filter: pending bytes! 
gpg: block_filter: pending bytes! 

Quelqu'un at-il une idée de ce qui se passe?

+0

Il y a une idée fausse, le cryptage/décryptage ne modifie pas la taille des données de plus d'une douzaine d'octets. La compression peut radicalement changer la taille du fichier. Alors, qu'est-ce qui se passe exactement, la question est vague à ce sujet. Suggérer de travailler avec des fichiers de petite taille et d'examiner les données à chaque étape. Fournir un [mcve], – zaph

+0

Ok. Je ne pense pas qu'il existe d'autre algo de compression que je suis en cours d'exécution autre que le cryptage/décryptage gpg. Peut-être que ce serait plus clair si je mets les commandes de cryptage/decrytion ici: Cryptage: 'GPG --recipient [email protected] --encrypt ' Décryptage: 'cat FILENAME.gpg | gpg --batch --passphrase-file passPhraseFile --yes --recipient [email protected] --decrypt' Il n'y a pas de compression qui se passe ici; du tout. J'espère que c'est un minimum pour commencer. – knowone

+0

OK, alors gpg fournit-il aussi une compression? Vous devriez savoir que si vous l'utilisez. – zaph

Répondre

0

Il n'existe pas de "limite de taille de bloc". Le cryptage des données crypte octet à octet sur les blocs de taille de bloc (16 octets pour AES). Jusqu'à un bloc de données peut être ajouté pour remplir les derniers octets à un bloc complet, qui est supprimé au déchiffrement.

gpg par défaut compresse, puis crypte. C'est donc la compression/décompression qui provoque l'augmentation de la taille du décryptage.

Note: Je ai googlé: "compression gpg" et la question la plus touchée est: "GNU GPG compresser par défaut?" et la première réponse est: "Oui" et "la valeur par défaut est 'ZIP'".