我需要为服务器创建一个加密密码。此服务器使用Blowfish加密来执行加密。现在,这里是信息我有:用字节[24]长度的BLOWFISH创建加密密码
- KEY: “12345678abcdefgmypassword”
- 块大小:8个字节 - 64位
- END BYTES:字节[24]
的数据,我要加密的是“ABCDEFG12345678”。
我遇到的问题是得到只有24个字节的加密,每次我得到48个。 我认为我最大的问题是因为我无法将自己的头围绕在应该发生的事情上!
下面是我的一些代码:
> BlowFish b = new BlowFish("12345678abcdefgmypassword");
> Here I get the key array of byte[12]
> plainText = "ABCDEF";
> cipherText = b.Encrypt_CBC(plainText);
> var encodedString = System.Text.Encoding.ASCII;
> byte[] myByteArray = encodedString.GetBytes(cipherText);
现在的问题,我有: 1.什么是块的大小?我该如何使用它? 2.如何得到低于或等于字节[24]的字节?
我真的希望你们中的一些人能帮助我的大脑开始朝着正确的方向前进。 谢谢。
你实际上是指blowfish加密还是bcrypt哈希? – CodesInChaos 2013-02-25 19:05:28
我怀疑你搞砸了编码的地方。 – CodesInChaos 2013-02-25 19:06:56
在密文上使用ASCII不可能是正确的。如果'Encrypt_CBC'返回一个十六进制字符串,则需要对其应用十六进制解码。 – CodesInChaos 2013-02-25 19:07:56