If team cohesion breaks down because pay information is revealed, give them pay cuts for being petty and disruptive. This is not an unsolvable conflict. People are not advantaged by remaining ignorant of their status in a transaction.
>I like the privacy of my coworkers not knowing my exact compensation, it is not their business.
It is their business to conduct the business of the company which employs them, which includes the distribution of that company's funds. Maybe people in other companies don't need to know, but people in yours do, because it is their business.
The floggings will continue until morale improves.
This is a great point, and let me add that it becomes 10x worse when money is involved. Some (many?) people are just flat out irrational when it comes to money. Jealously and envy quickly block any rational thought when it comes to explaining why someone might make more than they do.
I like the privacy of my coworkers not knowing my exact compensation, it is not their business. If we follow your logic to its natural end, why not force disclosure of all expenditures each of us make as well? (which on another topic, that is the best reason to never have digital currencies)