• dan@lemm.ee
    link
    fedilink
    English
    arrow-up
    34
    ·
    edit-2
    1 year ago

    Lossless compression algorithms aren’t magical, they can’t make everything smaller (otherwise it would be possible to have two different bits of input data that compress to the same output). So they all make some data bigger and some data smaller, the trick is that the stuff they make smaller happens to match common patterns. Given truly random data, basically every lossless compression algorithm will make the data larger.

    A good encryption algorithm will output data that’s effectively indistinguishable from randomness. It’s not the only consideration, but often the more random the output looks, the better the algorithm.

    Put those two facts together and it’s pretty easy to see why you should compress first then encrypt.

    • bastian_5@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      7
      ·
      1 year ago

      And the fact that it can grow data means you should really put a test to make sure that the compressed data is actually smaller… I once had something refuse to allow me to upload a file that was well below their 8Mb file limit while it was claiming it was above the limit, and I’m assuming it was because they were testing the size after compression and that file grew from 6Mb to above the limit.