There is a standard proof technique involving the relationship between injectivity and surjectivity on “finite” structures. I rather like it—for the examples provided, it is very difficult to proceed without knowing the trick, even though the solutions are very simple.

**Principle A:** If is a finite set and is a function, then is injective if and only if is surjective.

**Proposition 1:** If is a finite field and is a homomorphism of fields, then is an isomorphism.

**Proof:** is an ideal of , but it cannot equal , (for ) so and is injective. Therefore is surjective.

**Proposition 2:** If is a finite simple group and is a homomorphism, then is an isomorphism or .

**Proof:** Either , in which case , or , in which case is injective, so is surjective.

**Principle B:** If is a finite dimensional vector space and is a linear transformation, then is injective if and only if is surjective.

**Proposition 3:** If is a field and is an integral domain containing with finite dimension over , then is a field.

**Proof:** It suffices to show that we can take inverses. Choose any nonzero , and consider the map defined by . Then is a linear transformation. Since is an integral domain, is injective, therefore is surjective. So there exists some with , so .

**Problem:** Show that any finite integral domain is a field.

EDIT: As Steven points out in the comments, the following is also useful, and the proof is a good exercise:

**Principle C:** If is a Notherian module then any surjective homomorphism is injective, and if is an Artinian module, then any injective homomorphism is surjective. (hint: in fact, for any , if is Noetherian, then for large enough we have . If is Artinian, then for large enough we have .)