java字节到比特的加密技术

java字节到比特的加密技术,java,Java,我写了服务器和客户端,我想发送一些文件,将被加密。所以我必须对位进行操作,而不是字节,因为我的密码学方法是这样的:我以大约8位的部分发送文件,并向其中添加一些特定的MAC。(its:风选和摩擦方法) 在我的程序中,我将文件读入字节数组。但我需要字节到字节的转换,将MAC地址添加到文件的每个部分,并将它们分部分发送 我的问题是: 在Java中是否有可能对位进行操作,如果没有,您将如何解决这个问题 为什么不直接使用SSL或TLS呢?或任何其他内置安全协议。在这里重新发明轮子似乎很奇怪 通常,专有加密

我写了服务器和客户端,我想发送一些文件,将被加密。所以我必须对位进行操作,而不是字节,因为我的密码学方法是这样的:我以大约8位的部分发送文件,并向其中添加一些特定的MAC。(its:风选和摩擦方法)

在我的程序中,我将文件读入字节数组。但我需要字节到字节的转换,将MAC地址添加到文件的每个部分,并将它们分部分发送

我的问题是:
在Java中是否有可能对位进行操作,如果没有,您将如何解决这个问题

为什么不直接使用SSL或TLS呢?或任何其他内置安全协议。在这里重新发明轮子似乎很奇怪

通常,专有加密系统的安全性不如众所周知的加密系统,因为它们没有受到公众的监督


没有人知道这一事实并不能使它更加安全。“隐藏式安全”从来都不是最好的做法。

我真的不认为通过将字节转换为位可以解决您的问题,但下面介绍了如何做到这一点

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;
}
static boolean[]byteToBits(字节b){
布尔[]位=新的布尔[8];
对于(int-idx=0;idx<8;++idx)
位[idx]=((b>>idx)&1)==1;
返回位;
}

8位是一个字节。你真的要一次发送一个字节的文件吗?你在这里发明你自己的加密方案吗?这几乎是个坏主意。在C和C++中可用的基本的位移位选项在java中可用。你在寻找什么样的旋转操作?这个方法看起来很有趣。但我要说的是,它的发明只是为了证明加密不是保密所必需的,也不是安全传输数据的重要机制。是的,我当然愿意,但这是我大学的项目:P