This proof comes from Rudin's Principles of Mathematical Analysis.
1.33 Theorem - Let $z$ and $w$ be complex numbers. Then (c) $|zw| = |z||w|$
Let $z = a + bi, w = c + di$, with $a,b,c,d \in \mathbb{R}$. Then
$$|zw|^2 = (ac - bd)^2 + (ad + bc)^2 = (a^2 + b^2)(c^2 + d^2) = |z|^2 |w|^2$$ or
$$|zw|^2 = (|z||w|)^2$$
Then (c) follows from the uniqueness assertion of Theorem 1.21$\dots$
How does Rudin manipulate the numbers such that he gets $(ac - bd)^2 + (ad + bc)^2 = (a^2 + b^2)(c^2 + d^2)$? I don't understand what axiom or definition he is using to go from the left-hand-side to the right-hand-side.
Everything else is straight forward though from there.
$zw = ac+bci+ dai - bd = (ac - db) + i(bc+ad)$
$|zw|^2 = (ac-db)^2+(bc+ad)^2 = a^2c^2 - 2abcd + d^2b^2 + b^2c^2 + 2abcd + a^2d^2$
$|zw|^2 = a^2(c^2+d^2)+b^2(c^2+d^2) = (a^2+b^2)(c^2+d^2) = |z|^2|w|^2$