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