If writing out the columns is no objection, you can simply concatenate the columns and hash that:
SELECT HASHBYTES('md5',
ISNULL(CONVERT(VARBINARY(MAX), column1), 0x) +
ISNULL(CONVERT(VARBINARY(MAX), column2), 0x) +
...
)
From SQL Server 2012 onwards, we can achieve the same more compactly using CONCAT (thanks to @MWillemse for the tip):
SELECT HASHBYTES('md5', CONCAT(column1, column2, ...))
Be aware that this can cause collisions if your columns are "the same": hashing AA,BB,CC yields the same result as AAB,BBC,C or even AABBCC,NULL,NULL. If this is a concern, you'll have to design your own hashing scheme to minimize the odds of this (by including the column names in the hash, for example). Also, this is a binary checksum: hashing A,B,C is not the same as a,b,c. Again, if this is a concern you'll have to tweak the data before hashing it (UPPER).
Finally, MD5 is no longer considered cryptographically secure, so only use this for things like checksum indexes where you need less collision probability than with CHECKSUM. If you need a cryptographic signature of a row, this is too simplistic.