2017-09-22 2 views
0

Je veux crypter le fichier audio par android et le décrypter par backend navigue js. J'ai développé le programme pour cela, mais je suis arrivé erreur dans sails js commecrypter le fichier audio par android et le décrypter par voiles backend js

error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt 

enter image description here

Ceci est mon code source pour crypter le fichier audio dans Android

 final String ALGORITHM = "blowfish"; 
    String keyString = "DesireSecretKey"; 

    private void encrypt(String file) throws Exception { 

     File extStore = Environment.getExternalStorageDirectory(); 
     File inputFile = new File(file); 
     File encryptedFile = new 
     File(extStore+"/Movies/encryptAudio.amr"); 
     doCrypto(Cipher.ENCRYPT_MODE, inputFile, encryptedFile); 
    } 



    private void doCrypto(int cipherMode, File inputFile, 
           File outputFile) throws Exception { 

     Key secretKey = new 
     SecretKeySpec(keyString.getBytes(),ALGORITHM); 
     Cipher cipher = Cipher.getInstance(ALGORITHM); 
     cipher.init(cipherMode, secretKey); 

     FileInputStream inputStream = new FileInputStream(inputFile); 
     byte[] inputBytes = new byte[(int) inputFile.length()]; 
     inputStream.read(inputBytes); 

     byte[] outputBytes = cipher.doFinal(inputBytes); 

     FileOutputStream outputStream = new 
     FileOutputStream(outputFile); 
     outputStream.write(outputBytes); 

     inputStream.close(); 
     outputStream.close(); 

    } 

J'ai installé le Crypto, fs bibliothèques en voiles js backend en suivant la commande npm installer crypto npm installer fs

Ceci est mon code source pour déchiffrer le fichier audio dans les voiles js

function decrypt() { 
     var crypto = require('crypto'), 
     algorithm = 'blowfish', 
     password = 'DesireSecretKey'; 

     var fs = require('fs'); 

     // input file 
     var r = fs.createReadStream(config.UPLOAD_FILES_PATH 
     +'/encryptAudio.amr'); 

    var decrypt = crypto.createDecipher(algorithm, password,""); 

    // write file 
    var w = fs.createWriteStream(config.AUDIO_PATH+'decryptAudio.amr'); 

    // start pipe 
     r.pipe(decrypt).pipe(w); 
    } 

Le cryptage fonctionne correctement & i peut obtenir l'audio crypté file.But la question est je ne pouvais pas obtenir le fichier audio décryptées par les voiles js. Pouvez-vous identifier le problème?

Répondre

0

Peut-être que la réponse à cette question pourrait vous aider lorsque vous utilisez la bibliothèque de Java pour la cryptographie, cela devrait vous guider dans la bonne direction. Encrypt with Node.js Crypto module and decrypt with Java (in Android app) Je l'aurais mentionné dans la section des commentaires, mais je n'ai pas assez de points de réputation pour commenter. Ceci est à l'opposé de ce que vous essayez d'accomplir mais cela pourrait vous aider à analyser votre problème.