Je réalise un projet dans 'Steganography' dans lequel je veux crypter le contenu d'un fichier en utilisant l'algorithme 'Blowfish' et ensuite je veux incorporer le texte crypté dans l'image et faire la procédure inverse pour extraire l'image.
La méthode 'update' de la classe 'Cipher' crypte seulement certains no. d'octets mais, ici je veux tous les octets (contenu crypté) du fichier dans un seul tableau. C'est le cas avec la méthode 'update' dans le décryptage. Ce tableau sera ensuite transmis à une méthode dans laquelle j'intègre le texte dans l'image et extrait au besoin. Alors, quelle peut être la meilleure approche pour ce problème?
Merci.Comment ajouter un numéro. d'octets à un tableau d'octets?
Répondre
La plupart des chiffrements sont des chiffrements en continu. Ils peuvent prendre des blobs de données et diffuser des résultats en les cryptant/décryptant. La classe Java Cipher fonctionne de cette façon. Vous appelez update (..) avec un bloc de données, et il renvoie un bloc de données cryptées. Lorsque vous atteignez la fin de vos données d'entrée, vous appelez la méthode finale (...). Maintenant, si vous souhaitez accumuler toutes vos données dans un seul tampon binaire, et crypter tout à la fois, cela fonctionne bien aussi. Mais à la fin, de toute façon fonctionne, le chiffrement ne se soucie pas si elle crypte 1 octet à la fois ou 1 Mo à la fois. Si vous voulez simplement savoir comment ajouter des tableaux d'octets, vous créez simplement un nouveau tableau d'octets dont la longueur est égale à la somme des tailles des tableaux que vous souhaitez ajouter, puis utilisez System.arraycopy pour déplacer copier l'original tableaux.
byte[] newbuf = new byte[oldbuf1.length + oldbuf2.length];
System.arraycopy(oldbuf1, 0, newbuf, 0, oldbuf1.length);
System.arraycopy(oldbuf2, 0, newbuf, oldbuf1.length, oldbuf2.length);
Si vous allez faire beaucoup, et vous avez la mémoire à épargner, il est préférable d'accumuler vos morceaux de données dans des tampons d'octets disparates, les farcir dans une liste, puis faites votre fusion finale juste une fois.
int sum = 0;
for(byte[] ba : arraysList) {
sum = sum + ba.length;
}
byte[] newbuf = new byte[sum];
int curpos = 0;
for(byte[] ba : arraysList) {
System.arraycopy(ba, 0, newbuf, curpos, ba.length);
curpos = curpos + ba.length;
}
(code non testé, devrait fonctionner, ne pense pas qu'il y ait 1-offs là-dedans.)
- 1. Comment ajouter un tableau à un autre tableau en PHP?
- 2. Comment affecter un numéro de rang à un tableau
- 3. Comment ajouter html_entity_decode à un tableau?
- 4. Ajouter un élément à un tableau
- 5. Ajouter un élément à un tableau
- 6. Ajouter un parchemin à un tableau
- 7. C++ Ajouter un objet à un tableau
- 8. Comment ajouter un numéro à mon extension Google Chrome?
- 9. comment ajouter un index (chemin) à un tableau
- 10. Ajouter une valeur à un tableau multidimensionnel
- 11. ajouter un numéro de mandat assigné à l'entrée de tableau php
- 12. comment ajouter plusieurs valeurs à un tableau à la fois
- 13. Ajouter des éléments à un tableau?
- 14. Ajouter dynamiquement des données à un tableau
- 15. Ajouter un élément à une chaîne [] tableau
- 16. Comment ajouter un numéro de version à un fichier Access dans un .msi
- 17. Comment ajouter un élément au tableau C++?
- 18. js ajouter une valeur à un élément dans un tableau
- 19. Comment ajouter un nombre à un Sqlcommand.Parameters?
- 20. Comment ajouter un tableau à un tableau de tableaux en utilisant jQuery?
- 21. Comment puis-je ajouter un tableau en tant qu'élément à un autre tableau en PHP?
- 22. Comment ajouter des éléments à un tableau dans jQuery?
- 23. Comment ajouter des éléments à un tableau vide en PHP?
- 24. Comment ajouter des valeurs à un tableau en Objective-C
- 25. comment ajouter un sous-texte à une cellule de tableau?
- 26. Ajouter un entier sur un tableau
- 27. Ajouter un numéro de page aux codes à barres
- 28. Ajouter un numéro de build à TFS 2010
- 29. comment ajouter des éléments individuels dans un tableau
- 30. Comment attribuer un numéro de rang à un tableau quand des liens existent
@Will Hartung: Je vous remercie. L'idée a finalement fonctionné. J'ai utilisé ceci pour le 'cryptage'. :) – Supereme