首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android AES加密的Node js等效代码

android AES加密的Node js等效代码
EN

Stack Overflow用户
提问于 2016-05-03 15:21:58
回答 2查看 802关注 0票数 1

我正在尝试在android中加密我的消息,并在node js服务器中解密。

Android代码:

代码语言:javascript
复制
SecretKeySpec secretkeyspec = new SecretKeySpec("password".getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretkeyspec);
byte[] encoded = cipher.doFinal(s.getBytes());
System.out.println(Arrays.toString(encoded));

节点JS编码:

代码语言:javascript
复制
var crypto = require('crypto');
var CIPHER_ALGORITHM = 'aes-128-cbc';
var key = 'password';
var ivBuffer = new Buffer(16);
ivBuffer.fill(0);

var cipher = crypto.createCipheriv(CIPHER_ALGORITHM, new Buffer(key, 'utf-8'), ivBuffer);
var encryptedBuffer = cipher.update(plainText, 'utf-8');
var fBuf = new Int8Array(Buffer.concat([encryptedBuffer, cipher.final()]));
console.log(fBuf);

当我尝试打印缓冲区时,im在android和node js之间得到了不同的值。

节点缓冲区:

26,116,2,-56,-70,121,-44,66,101,84,-46,127,-70,-42,67,31,124,-104,-24,88,74,4,-22,-70,-39,48,-120,-21,37,-15,-24,-30

Android Buffer:

26,116,2,-56,-70,121,-44,66,101,84,-46,127,-70,-42,67,31,-92,97,16,-101,-45,-68,108,89,-125,17,-71,53,2,-13,31,-79

谁能告诉我android默认的AES等效节点js解密代码是什么?

EN

回答 2

Stack Overflow用户

发布于 2016-05-03 16:25:34

我终于找到了答案。

代码语言:javascript
复制
var cipher = crypto.createCipheriv(CIPHER_ALGORITHM, new Buffer(key, 'utf-8'), '');
  var encryptedBuffer = cipher.update(plainText, 'utf-8');
  var finalEncryptedBuffer = new Int8Array(Buffer.concat([encryptedBuffer, cipher.final()]));
  console.log(encodeBytes(finalEncryptedBuffer));

票数 1
EN

Stack Overflow用户

发布于 2016-05-03 15:28:02

确保两个实现之间的操作模式(例如,CBC)和填充(例如,PKCS5)匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36998066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档