2016-07-07 10 views
3

こんにちは、これは私の暗号化コードです。私はjson経由でAndroidのコードを解読しようとしています。私はノードjsでこのコードを解読することができます。しかし、私はアンドロイドエラーで復号化しようとすると、いずれかの問題はどこに私のノードのjsコードやアンドロイドで発生するかを私に示唆するように発生しました。暗号化ノードJs

app.post('/insert', function (req,res){ 
     var data = { 
      userId:req.body.fname, 
      firstName:req.body.fname 
     }; 


       var cipher = crypto.createCipher('aes128', 'a password'); 
       data.firstName = cipher.update(data.firstName, 'utf8','base64'); 
       data.firstName += cipher.final('base64'); 
       console.log(data); 

     con.query("insert into md5 set ?",[data], function (err,rows){ 
      if(err) throw err; 
       res.send("Value has been inserted"); 
      }) 
      console.log(data.firstName); 
     }) 

答えて

0

我々はすべてのクライアントがそのメッセージを解析と同様の資格情報を持つべきである(DB含む)、当社のシステムに暗号化と復号の任意の種類を使用しています。

私たちには、バックエンド、ウェブ、モバイルアプリ(Android/iPhone)があります。だからバックエンドどのような資格情報でもメッセージを暗号化他のすべてのクライアントは、そのメッセージの復号化に同じ資格情報を持つことができます。

ここでは、AESがPredefine IVとKEYを使用して256を使用することを提案しています。 暗号は、すべてのプラットフォームでこの機能を持つ非常に有名なライブラリです。私はNode.jsでやった。暗号化テキストのための

スニペット:

encryptText: function(text) { 
     var cipher = crypto.createCipheriv(Constant.algo, Constant.key, Constant.iv); 
     var result = cipher.update(text, "utf8", 'base64'); 
     result += cipher.final('base64'); 
     return result; 
    }, 

スニペット復号化テキストのために:

decryptText: function(text) { 
     console.log(text); 

     var decipher = crypto.createDecipheriv(Constant.algo, Constant.key, Constant.iv); 
     var result = decipher.update(text, 'base64'); 
     result += decipher.final(); 
     return result; 
    }, 
0

あなたは塩とハッシュを使用してincryptすることができますが 第1の塩生成

var salt = crypto.randomBytes(16).toString('base64'); 

第二には、同じ方法でログインを実行し、暗号化パスワードを

var password = crypto.pbkdf2Sync(password, new Buffer(this.salt, 'base64'), 10000, 64, 'sha1').toString('base64'); 

を生成します。

関連する問題