If my salary was a bit low for my last position, can I refuse to reveal it if a potential employer asks and how would I word it? Especially since I was fired from my last job, I am worried that a lower salary would make me look doubly bad
Being fired is going to look bad. There's no avoiding that. But you need to be honest about that because they're going to ask for references at some point and you're going to need to explain why you're not listing your previous company. Also be honest about the reasons, cause if the same thing is going to get you fired from this place then you're wasting everyone's time. If the reasons are the kind of thing that will get you fired from anywhere, be quick to tell them what you're doing to ensure it doesn't happen again.
With all that in mind, are you really looking for significantly more money than you were paid in your previous job? Bear in mind that you are slightly damaged goods right now and you need a job where you can rebuild a clean record. You are almost certainly not worth market value, at this point in time.
If your previous wages were so low that you still think you're worth significantly more, be honest about that. Say "My previous wage was $X, but I think I'm worth significantly more than that." Again, if you're not honest, this might come out in the references, and that - combined with your firing - is going to look a hell of a lot worse.
If you refuse to reveal it at all then they might assume it was even worse than if you'd been honest.
[C]an I refuse to reveal it if a potential employer asks and how would I word it?
I've refused to reveal it when it was embarassingly low. That company had included as part of the non-disclosure agreement that salary and other benefits were confidential and were expressly covered by the NDA. This part of the NDA is expressly forbidden by federal regulations (and many court cases have upheld it), but I chose to use that to my advantage when it was not in my interest to reveal that information.
You could phrase it along the lines of "while the salary itself was below market average, the other benefits involved brought the compensation package up to the market norms." If you do pursue this route, you had better think of other "benefits" that offset the money, as they may offer them to you in order to save a buck. The reason they are determined to pry your last salary out of you is that many people have a belief that people may not ask for more than a 15-20% raise (from their last job) when switching jobs. Their beliefs should not stop you from getting what you are worth.
The important thing to remember is that salary is just one part of a compensation package that could also include university reimbursement, extra time off, working from home, or other non-monetary items. You really need to add those up to get a total package value. And if the money is low, emphasize the package value when they're hardballing you.
You can say the salary of your last job was a bit low and that's why you're applying for this job. If the potential employer keeps asking exactly how low it was. You can say you rather not tell because it's low. Then you can try to change the subject. If they still want to know, I am not sure you really want to work for them.
Honesty is the best policy. However, that does not mean you must tell everything.
Frankly, your previous salary is none of the company's business, and they're stupid for asking you what it was.*
Why? Because they're basing your value to them using the criteria from another company, possibly in another industry, from a different job.
If I'm applying at Frobozz to work on Flood Control Dam #3, what I did at Acme, Inc (Anvil testing) is irrelevant—and again—none of Frobozz's business.
I always use @Tagurena's excuse: my salary is under NDA (meaning I Never Disclose to Anyone). 100% of the time this has worked.
*The real reason, of course is to save money by lowballing you. Either they go with the low-priced applicant, or (if you're the hiree) so they can start you at a lower salary than what others get.
Yes, because it's irrelevant
Here's how I would answer (based on my personal situation).
That's really not relevant to our discussions. My last company has a different business model than you do, so their ability to profit from my skills was different.
Also, I've learned a lot of skills since I was last hired.
Also, the market demand for people with my skills has changed.
The question real question is, what are my current skills worth to your business?
Besides being a good verbal defense, this is absolutely true. Remember: your labor is a product that you're selling. All prices are based only on supply and demand.
I mean, suppose you were going to buy a used car. Does it make any difference to you what the previous buyer paid for it? Of course not. You will pay what it's worth to you, determined by some combination of market value and your own needs.
Turn it the other way around, too. What would the employer say if you asked "what did you pay the last person in this position?" Probably the same thing that you'd say if a the car dealer asked you "what did you pay for your last car?" You'd say, "that's irrelevant. This is a different car."
Like a car, the price of your labor is determined by what similarly skilled labor costs in the market, and what the employer needs. Only they know what they need, but you should bring salary data along to show the market value.
The beauty of arguing from market value is that it can't be countered. If they won't pay a fair price, someone else will.
Politely explain that you won't release your salary information as that could jeopardise your position. Invite the company to offer you a fair offer as a base for a discussion based on your working experieence.
You do not have the obligation to say your past or current salary.