ROT (Rotation) hashing is a simple letter substitution cipher similar to ROT-13, but instead of rotating by 13 positions, you can rotate the letters in the alphabet by any number from 1 to 25. Each number represents a different rotation value, and it's used to encode and decode text. Here's how ROT 1-25 hashing works:

Encoding (ROT 1-25):

  1. Start with a piece of text you want to encode.
  2. Choose a rotation value between 1 and 25.
  3. For each letter in the text, do the following:
    • If it's a lowercase letter (a to z), replace it with the letter rotated by the chosen value, wrapping around if necessary. For example, with a rotation of 1, 'a' becomes 'b', 'b' becomes 'c', and 'z' becomes 'a'.
    • If it's an uppercase letter (A to Z), follow the same rule but using uppercase letters. For example, with a rotation of 1, 'A' becomes 'B', 'B' becomes 'C', and 'Z' becomes 'A'.
    • If it's not a letter (such as a number, symbol, or space), leave it unchanged.
  4. Repeat this process for every letter in the text.

Decoding (ROT 1-25): Decoding ROT 1-25 is the same as encoding because the process is symmetrical. To decode a ROT 1-25 encoded message, follow these steps:

  1. Start with the ROT 1-25 encoded text.
  2. Know the rotation value that was used to encode it.
  3. Apply the same ROT 1-25 encoding process but in reverse. In other words, rotate the letters backward by the chosen value.
  4. The result will be the original, unencoded text.

Example: Let's say you have the text "Hello, World!" and you want to encode it using ROT 3 (rotate by 3 positions):

  1. H -> E
  2. e -> b
  3. l -> i
  4. l -> i
  5. o -> l
  6. , (comma) -> , (comma) [unchanged]
  7. (space) -> (space) [unchanged]
  8. W -> T
  9. o -> l
  10. r -> o
  11. l -> i
  12. d -> a
  13. ! (exclamation mark) -> ! (exclamation mark) [unchanged]

So, "Hello, World!" encoded with ROT 3 becomes "Ebilb, Tolia!".

To decode "Ebilb, Tolia!" back to the original text with a ROT 3 rotation, you would apply the ROT 3 encoding process in reverse, resulting in "Hello, World!".

Each ROT value from 1 to 25 corresponds to a different rotation, and you can choose any of them for encoding and decoding text.