Enough people have talked about variations of "Can you carry/have a gun despite it being against policy?" that I won't get into that.
I'll assume that you decide to forgo the gun.
There are other options for defense. The first, and most useful, is being prepared to run. Run like he[ck]. Whenever you walk home, make sure you're wearing shoes that are good for running in. Also make sure that you aren't too weighed down, like with a heavy backpack and pockets full of junk slapping against your legs as you run. Also, be sure to wear a good belt, one that will hold your pants up tight while running. Simple, but important.
There are weapon options, too. It's important, though, not to carry such a variety of weapons (mace, stun gun, cane, knife, kubaton, flashlight, kitchen sink) that you're weighed down when you need to run. Pick one or two things that can be carried securely in your hands or pockets. Make sure whatever you do carry is something you're comfortable using, and if possible, have some training/instruction with.
Leave valuables at home. Don't carry an expensive iPod or something with you. Minimize the amount of cash you carry with you. Consider making up a fake wallet, stuffed with a few single bills, fake credit cards, whatever. Put your real wallet somewhere hidden on your person, and carry the fake wallet where your real wallet normally rides. If you can't run, giving up a few dollars and your fake wallet is better than fighting and maybe getting killed, as long as the mugger doesn't mind leaving a witness/victim alive.
Wear dark clothing. It makes you harder to see at night, and may give you an extra second or two to spot a would-be mugger before he sees you. Also, if you have to hide, dark clothes will help. Similarly, forgo jewelry or anything shiny, or that jingles and makes noise when you walk. Low-profile is your friend.
Above all, stay alert, and watch your six.
Hope this helps.
Edit: As for body armor... you have to weigh pros and cons. It will probably stop anything you're likely to be shot with, as long as they shoot you in the chest. On the down side, it's expensive. Worse, it weighs you down, makes running harder. I'd probably do without the armor, personally, unless you think you're more likely to get shot in the chest than to be able to run away.