android - Android AES加密的Node js等效代码

标签 android node.js encryption aes cryptojs

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

安卓代码:

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));

Node JS 代码:

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);

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

Node 缓冲区:

[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 ]

安卓缓冲区:

[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等效 Node js解密代码是什么。

最佳答案

我终于找到了答案。

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));

关于android - Android AES加密的Node js等效代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36998066/

相关文章:

C# AES CBC PKCS7 到 Python

php - 在 PHP 中用于加密/解密的 Mcrypt 替代品?

android - 为什么我的应用程序在使用 Admob 和 Firebase 时会崩溃?

javascript - 当我向我的网站注册新用户时,出现此错误“secretOrPrivateKey 必须具有值”! Node.js

Android:第一个元素 ListView 表现得很奇怪

javascript - 如何将 mongoose ObjectId 数组转换为字符串数组?

javascript - Node.js:Promise.all(promises).then(...) 从未执行但程序完成

java - URL 标识符的加密算法

android - 如何避免 Git 存储库分支上的代码重复

android - 如何在android中自定义开关?