-2

我需要 Kocher 的河豚算法的帮助才能在 C 中实现。它的网址是(http://www.schneier.com/code/bfsh-koc.zip)。我可以做基础(初始化),但解密并不好。我知道我应该使用 longs,但请帮我编写一个 char * 函数需要什么 (char *encrypted_text) 并返回解密的文本。谢谢

4

2 回答 2

3

Blowfish 已经用 C 语言实现了。没必要自己写。

PolarSSL 库有一个 C 实现,可以在这里找到。

于 2013-05-15T00:07:52.367 回答
1

这是加密的基础知识,它在代码中的工作方式取决于实现:

进行某种状态初始化,包括最多 56 个字节的加密密钥,设置模式(cbc、ecb 等)

输入你的机器(块大小)字节的数据块,直到你的数据用完......一定要以某种方式填充数据流的末尾以达到 8 个字节......

现在你已经完成了,你可以从状态中提取哈希......

看看这听起来是不是很容易……

现在是一个 openSSL 示例:

void *source = "12345678";
size_t len = strlen(source);
assert(len % BF_BLOCK == 0);
void *dest = malloc(len);
BF_KEY key;
BF_set_key(&key, 5, "12345"); // make a key

while(len > 0) {
    BF_ecb_encrypt(source, dest, key, 1);// or other BF function see docs.
    source += BF_BLOCK;
    dest += BF_BLOCK;
    len -= BF_BLOCK;
}
于 2013-05-15T01:01:46.510 回答