Black box testing is based on an analysis of the specification/requirements or models. It concentrates on the inputs and outputs of the test object without reference to its internal structure.
White box testing is based on an analysis of the architecture, detailed design or the code of the test object. It concentrates on the structure and processing within the test object.