title: Incorrect string length after Blowfish encryption
body: <p>I did a little testing with Blowfish encoding and noticed something. The encoded string is not always as long as the source string. it is shorter sometimes.</p>
  
  <p>If i want to decode a encoded string i need the length to decode in the openssl function:</p>
  
  <pre><code>BF_cfb64_encrypt(encoded_input,decoded_output,length_to_decode,&amp;key,iv,&amp;num,BF_DECRYPT);    
  </code></pre>
  
  <p>The problem here is that i don't have the <code>length_to_decode</code> if i don't know the length of the source string. if i use the length of the decoded string as length_to_decode then this may be too short.</p>
  
  <p>If i use a bigger length then the decoded string is not correct. So do i need to know the length to decode with blowfish encoding? </p>
  
  <p>in all the example code on the internet encoding and decoding always takes place in one function and the decoding example use hard coded length for decoding. but in real life i don't know the length of the encoded string and what then?</p>
  
  <p>here is an example:</p>
  
  <pre><code>source string:    sdcfgssssssss
  source length:    13
  encryption key:   s
  encrypted output: :‹(
  encrypted length: 4
  </code></pre>
  
  <p>I init my key like this: </p>
  
  <pre><code>BF_KEY key;
  const char * keyStr = "s";
  BF_set_key(&amp;key, strlen(keyStr), (const unsigned char *)keyStr);
  </code></pre>