I have a series of codes in the format:
AA12345A1
i.e.: [a-z]{2}[0-9]{5}[a-z][0-9]
and
AA12345A123
i.e.: [a-z]{2}[0-9]{5}[a-z][0-9]{3}
I need to create a new "code" of any format from either of the above to formats to obscure the difference between the ones ending in 1 number and the ones ending in 3 numbers (this reveals information to the user that I need to hide).
The constraints for the new code format are:
- they need to be human usable (so using upper and lower case letters is a bad idea usability wise, the should also be as short as possible)
- they must always be unique (no 9 or 11 char code should produce the same output)
- it only needs to be a one way hash, I never need to get the original code back
- the length of the original code (9 or 11 chars) must not be obvious - it doesnt need to be cryptographically strong, just opaque to the layman.
Are there any suitable hashing (or otherwise) algorithms to do this, or does anyone have any suggestion for a custom way of doing this?
Thanks