Background:
Your first option has the only inconvenience of (String1, String2) producing the same hashcode of (String2, String1). If that's not a problem (eg. because you have a fix order) it's fine.
"Cat all the string together then get the hashcode" seems the more natural and secure to me.
Update: As a comment points out, this has the drawback that the list ("x", "yz") and ("xy","z") would give the same hash. To avoid this, you could join the strings with a string delimiter that cannot appear inside the strings.
If the strings are big, you might prefer to hash each one, cat the hashcodes and rehash the result. More CPU, less memory.