IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Chiffrer un fichier son


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Chiffrer un fichier son
    Bonjour,

    Cela fait plusieurs jours que je cherche à trouver comment chiffrer un fichier son sur internet mais pas moyen de trouver de chose clair. J'ai déjà une partie qui me permet de lire un son d'un fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    public void jouer() throws IOException {
            File soundFile = new File(filename);
            AudioInputStream audioInputStream = null;
            try {
                audioInputStream = AudioSystem.getAudioInputStream(soundFile);
            } catch (UnsupportedAudioFileException e1) {
                e1.printStackTrace();
                return;
            } catch (IOException e1) {
                e1.printStackTrace();
                return;
            }
            AudioFormat format = audioInputStream.getFormat();
            SourceDataLine auline = null;
            DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
            try {
                auline = (SourceDataLine) AudioSystem.getLine(info);
                auline.open(format);
            } catch (LineUnavailableException e) {
                e.printStackTrace();
                return;
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }
            if (auline.isControlSupported(FloatControl.Type.PAN)) {
                FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN);
                if (curPosition == Position.RIGHT) {
                    pan.setValue(1.0f);
                } else if (curPosition == Position.LEFT) {
                    pan.setValue(-1.0f);
                }
            }
            auline.start();
            int i;
            int nBytesRead = 0;
            byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
            try {
                while (nBytesRead != -1) {
                    nBytesRead = audioInputStream.read(abData, 0, abData.length);
                    if (nBytesRead >= 0) {
                        auline.write(abData, 0, nBytesRead);
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
                return;
            } finally {
                auline.drain();
                auline.close();
            }
        }
    Maintenant j'aimerai pouvoir crypter ce son mais qu'il reste lisible. J'ai essayé de travailler sur le tableau de byte abData mais cela ne semble pas fonctionner. Je sais qu'il y a l'entête à prendre en compte mais j'avoue etre un peu perdu sur la procédure à suivre...Je m'en remet donc à votre aide pour me mettre sur la piste s'il vous plait.

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    Citation Envoyé par Leda25 Voir le message
    Maintenant j'aimerai pouvoir crypter ce son mais qu'il reste lisible.
    Je ne comprend pas cette phrase, on ne peut pas chiffrer un fichier et qui reste lisible, ça n'a pas de sens. Peux-tu expliquer le but de la manoeuvre ?
    Tu veux que ton fichier son ne soit lisible que par toi et ceux qui ont ton mot de passe ?

    PS : il faut dire chiffrer et pas crypter sinon tu va te faire tirer les oreilles

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Je voulais dire que j'aurai un son différent mais qui serait toujours audible...On entendrait plus le son d'origine mais un son entre guillemet aléatoire puisque que je veux le chiffrer par une clé aléatoire.

    J'espère que je suis plus clair

  4. #4
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    C'est pas vraiment chiffrer au final..

    Ben tu dois pouvoir jouer sur les échantillons.. Par exemple, tu peux faire varier la valeur d'un échantillon, ça me parrait être le plus simple..

    J'avoue qu eje ne vois pas l'interêt en fait..

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    C'est un projet, je dois chiffrer un son avec une clé et ensuite le déchiffrer...C'est pour mettre en pratique la méthode de Feistel...Du coup il faudrait que je puisse chiffrer les données avec la méthode de Feistel et ensuite les décrypter. Voilà l'intérêt...Pour que notre projet soit ludique, je veux donc que le fichier son chiffrer reste un fichier son lisible...montrant ainsi que le son est changé et donc pas reconnaisable.

    Du coup comment je peux travailler sur les échantillons là?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Ok j'ai compris, tu veux chiffrer les blocs de data, mais garder une structure de fichier son lisible même si on entent n'importe quoi.
    C'est compliqué, car il va falloir parser toi même le fichier son. Quel est le format du fichier ? mp3 ?

  7. #7
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Une version toute simple si tu veux juste faire une illustration serait d'enregistrer ton fichier chiffré comme mp3 et d'essayer de le lire (avec Audacity par exemple).

    Sinon, il faut que tu arrives à stocker le nouveau fichier dans un byte array et que tu l'enregistre comme un fichier son (avec une lib qui va bien pour ça).

    Un fichier son, c'est juste un byte array, après, il y a des entêtes, des encodages, des choses comme ça que tu pourrais déléguer à une lib quelconque.

    Sinon, tu peux montrer un histogramme ou une FFT pour montrer que le fichier n'a rien à voir. Ca serait plus simple et ça resterais visuel.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    C'ets un fichier Wave...

    Il faut donc que je m'interresse à mon tableau de byte abData?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Je me permet un petit up...

    Je ne suis pas sur d'avoir tout compris.

    Dans mon programme, si je veux modifier les données, il faut bien que je me penche sur abData une fois que j'ai lu mon AudioInputStream?

    Si oui, comment savoir où commence les données et où est l'entête avant?

    Et enfin dernière question. A partir de ce tableau de byte, comment vais je recrée mon fichier? Une librairie?

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    Ce que tu veux faire n'est pas du cryptage, mais une modification du son.
    Donc il faut ouvrir ton format de fichier et modifier les données.
    Ce qui implique une bonne connaissance de ce format et la façon dont sont codés les informations.
    Il faut décortiquer la structure des fichiers .wav si le format exacte trainne peut-être quelque part sur le net.
    Ensuite il te faudra extraire les zones de données sans toucher à la structure. Modifier les données et ensuite réécrire ton fichier correctement.

    C'est de loin une tâche assez complexe.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Donc je connais la structure des fichiers .wav mais déjà j'aurai voulu savoir si dans mon abData il y avait tout l'entête + les données...

    Et la deuxième question était de savoir comment réécrire ce bytearray.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Personne ne peux m'apporter plus de précision?

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Je m'explique sur mes dernières interrogations...Comme je connais la structure du .wav, je dois donc parcourir mon bytearray tant que je suis suis dans l'entete et après je peux modifier la suite car c'est des données?

    Mais comment j'enregistre ce bytearray en nouveau fichier wav?

Discussions similaires

  1. Lecture d'un fichier son
    Par benib8 dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2005, 18h52
  2. forme d'onde d'un fichier sons
    Par glebourg dans le forum DirectX
    Réponses: 1
    Dernier message: 29/06/2005, 18h07
  3. Un fichier son intégré dans un fichier save
    Par jmdeffet dans le forum Langage
    Réponses: 11
    Dernier message: 23/05/2005, 16h46
  4. Réponses: 43
    Dernier message: 29/11/2004, 16h27
  5. [TP]comment faire pour lire un fichier son
    Par sovo dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 19/09/2004, 19h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo