0

我几乎已经碰壁了,可以就如何为我的一门课程进行项目提出一些建议。这是我要开始工作的代码:

for(i = 0; i < sendData.length; i++){
        String hex = Integer.toHexString(C[i]);
    }

    System.out.println("Encrypted Message: ");
    for(i = 0; i < sendData.length; i++){
        System.out.print(sendData[i]);
    }

作为背景知识,这是用于 RC4 加密的代码。我试图将 hex 的值放在 sendData[] 中的一个位置,这是一个固定字节数组。因为 hex 是一个字符串,所以我还没有真正找到一种方法将该值放在 sendData 数组中的某个位置。我知道我不能使用 getBytes() 函数,因为它完全摆脱了十六进制值。如果有人对如何获取字符串值并将其放入固定字节数组中的位置有任何想法,我们将不胜感激。

4

1 回答 1

0

您需要了解 Integer4 bytes不是单个字节,因此您需要数组4 bytes而不是使用单个字节存储在循环中。您可以将 Integer 转换为 byte[] ,如下所示。

public static byte[] toByteArray(int value)    
{  
    ByteBuffer bb = ByteBuffer.allocate(4);  
    return bb.putInt(value).array();  
}  

public long toInteger(byte[] bytes) {
    ByteBuffer buffer = ByteBuffer.allocate(4);
    buffer.put(bytes);
    return buffer.getInt();
}
于 2012-10-14T03:03:27.713 回答