java rc4_nodejs 和 java 进行 rc4 加密得到的结果不一样

同时在对一个

buffer<03 01 00 00 02 00 00 00>

进行加密。

java 和 c 得到的结果是

CA 66 C4 5D 90 E7 30 01

nodejs 得到的结果是

6f 61 f8 95 ab ba aa 90

不一样 什么原因导致的呢?

import java.nio.ByteBuffer;

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

class Test {

public static void main(String[] args) {

try {

byte[] bs = {

(byte)0x03, (byte)0x01, (byte)0x00, (byte)0x00,

(byte)0x02, (byte)0x00, (byte)0x00, (byte)0x00

};

ByteBuffer buff = ByteBuffer.wrap(bs);

Cipher instance = Cipher.getInstance("RC4");

instance.init(Cipher.DECRYPT_MODE, new SecretKeySpec(("c2eWxyNe5c4G9GUHMQECzcUEWUK8MWkk" + "48LoIDEv8EQOrmwPirikDa3iUaickMSq").getBytes(), "RC4"));

instance.update(buff.array(), 0, 8, buff.array(), 0);

byte[] array = buff.array();

for (int j=0; j

System.out.format("%02X ", array[j]);

}

System.out.println();

//加密结束 结果:CA 66 C4 5D 90 E7 30 01

}catch (Throwable th) {

System.out.println(th);

System.exit(0);

}

}

}

var crypto = require('crypto');

//en

function cipher (buf) {

var rc4Key = "c2eWxyNe5c4G9GUHMQECzcUEWUK8MWkk"

var cipher = crypto.createCipher('rc4', (rc4Key+"48LoIDEv8EQOrmwPirikDa3iUaickMSq"),1);

var cryptedBuffers = [cipher.update(buf)];

cryptedBuffers.push(cipher.final());

var crypted = Buffer.concat(cryptedBuffers);

return crypted;

};

var buf1 = Buffer.from([

0x03, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00

]);

console.log(cipher((buf1)));

//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值