Normalization – Is there a clearly defined difference between "normalizing" and "canonizing" data?

I understand canonization and normalization means that all non-meaningful or ambiguous parts of a data presentation are removed effectively identical data in indeed identical data.

For example, if you want to get the hash value of some input data, and it is important that all other users who have hashed the same canonical data get the same hash value, you do not want to indent one tab and the other with spaces (and no other Difference)) to create two very different hashes.

In the case of JSON:

  • Object properties would be placed in a standard order (perhaps alphabetically)
  • unnecessary spaces would be removed
  • Indentation either standardized or stripped
  • The data can even be remodeled in a completely new syntax to enforce the above

Is my definition correct and the terms are interchangeable? Or is there a well-defined difference between canonization and normalization of input data?