sort user hash components to ensure consistency