How do I setup an encrypted swap file?

When I installed Ubuntu, I setup an encrypted home partition. Now I have come to an issue where I am running out of memory because I haven't setup swap. How can I setup an encrypted swap file?

A couple of times while booting I've seen some reference to cryptswap. I've also got these lines contained in /etc/fstab

# swap was on /dev/sda6 during installation
#UUID=1ba8a53b-1842-4de7-8e38-2d6c79f3a1ab none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

Thanks to this guide I set up an encrypted swap file (can't be used for hibernation). On Debian based distributions, you will need the cryptsetup package for these instructions.

  1. Firstly create an appropriately sized file (here 4 gigabytes) to store the swap data:

    fallocate -l 4G /cryptswap
    
  2. Add the following to /etc/crypttab:

    cryptswap /cryptswap /dev/urandom swap
    
  3. Activate the newly created encrypted drive:

    service cryptdisks reload
    
  4. Add the following to /etc/fstab:

    /dev/mapper/cryptswap none swap sw 0 0
    
  5. Activate the new swap file:

    swapon -a
    

Skip the reboot:

sudo cryptdisks_start cryptswap

where cryptswap is the name in /etc/crypttab