我写了服务器和客户端,我想发送一些将被加密的文件。所以我必须对位进行操作,而不是字节,因为我的加密方法是这样的:我以大约 8 位的部分发送我的文件,并向它们添加一些特定的 MAC。(其:风选和火柴方法)
在我的程序中,我将文件读入字节数组。但我需要字节到位才能将 MAC 地址添加到文件的每个部分并分部分发送。
我的问题是:是否有可能对 Java 中的位进行操作,或者如果没有,您将如何解决这个问题?
我写了服务器和客户端,我想发送一些将被加密的文件。所以我必须对位进行操作,而不是字节,因为我的加密方法是这样的:我以大约 8 位的部分发送我的文件,并向它们添加一些特定的 MAC。(其:风选和火柴方法)
在我的程序中,我将文件读入字节数组。但我需要字节到位才能将 MAC 地址添加到文件的每个部分并分部分发送。
我的问题是:是否有可能对 Java 中的位进行操作,或者如果没有,您将如何解决这个问题?
我真的不认为您的问题可以通过将字节转换为位来解决,但是您可以这样做。
static boolean[] byteToBits(byte b) {
boolean[] bits = new boolean[8];
for (int idx = 0; idx < 8; ++idx)
bits[idx] = ((b >> idx) & 1) == 1;
return bits;
}
为什么不只使用 SSL 或 TLS?或任何其他内置的安全协议。在这里重新发明轮子似乎很奇怪。
通常,专有加密系统的安全性不如众所周知的系统,因为它们没有受到公众监督。
没有人知道它的事实并没有使它更安全。“默默无闻的安全”从来都不是最佳实践。