gpt4 book ai didi

c++ - Blowfish 加密后字符串长度不正确

转载 作者:太空宇宙 更新时间:2023-11-04 16:30:54 26 4
gpt4 key购买 nike

我用 Blowfish 编码做了一些测试,发现了一些东西。编码后的字符串并不总是与源字符串一样长。有时会更短。

如果我想解码编码字符串,我需要在 openssl 函数中解码的长度:

BF_cfb64_encrypt(encoded_input,decoded_output,length_to_decode,&key,iv,&num,BF_DECRYPT);    

这里的问题是,如果我不知道源字符串的长度,我就没有length_to_decode。如果我使用解码字符串的长度作为 length_to_decode 那么这可能太短了。

如果我使用更大的长度,则解码后的字符串不正确。那么我需要知道用河豚编码解码的长度吗?

在互联网上的所有示例代码中,编码和解码总是在一个函数中进行,解码示例使用硬编码长度进行解码。但在现实生活中我不知道编码字符串的长度,然后呢?

这是一个例子:

source string:    sdcfgssssssss
source length: 13
encryption key: s
encrypted output: :‹(
encrypted length: 4

我这样初始化我的 key :

BF_KEY key;
const char * keyStr = "s";
BF_set_key(&key, strlen(keyStr), (const unsigned char *)keyStr);

最佳答案

输出的长度与输入的长度相同。请注意,输出数据可能包含 NUL 字符,因此您不应对数据使用 strlen

关于c++ - Blowfish 加密后字符串长度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7078255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com