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

发布于 2022-09-07 23:38:28 字数 2066 浏览 14 评论 0

同时在对一个

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

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

java 代码地址 https://ideone.com/V5Nzos

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<array.length; 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);
        }
    }


}

nodejs 代码地址
https://ideone.com/XQVhRM

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)));
//<Buffer 6f 61 f8 95 ab ba aa 90>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小…楫夜泊 2022-09-14 23:38:28

java 的byte类型是有符号的
一般加密算法出现问题基本就是这个原因,你可以查找一下试试.

梦忆晨望 2022-09-14 23:38:28

请问如何解决的这个问题?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文