2012-11-22 35 views
0

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

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

我的问题是: 是否有任何可能性操作Java中的位,或者如果不是,你会如何解决这个问题?

+0

8位是单字节。你真的要发送你的文件*一次一个字节*?你在这里发明自己的加密方案吗?这几乎是*总是*一个坏主意。 –

+0

Java中提供了与C和C++中相同的基本位移选项。你在寻找什么样的小玩意儿? – corsiKa

+0

['Chaffing and Winnowing'](http://people.csail.mit.edu/rivest/chaffing-980701.txt)方法看起来很有趣。但我想说它是为了证明加密不是保密性要求而发明的,并非作为安全传输数据的严格机制。 http://www.wired.com/techbiz/media/news/1998/03/11127 – zapl

回答

0

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

通常,专有加密系统比众所周知的加密系统安全性低,因为它们没有受到公众的详细审查。

没有人知道它的事实并没有使它更安全。 “朦胧安全”永远不是最佳做法。

+0

当然,我想,但这是我的大学项目:P – lechniak

0

我真的不认为你的问题将通过将字节转换为位来解决,但这里是你如何做到的。

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; 
}