Previous: Common Wrapper Format, Up: Encrypted File Wrappers [Contents]
4.2 Password Encoding ¶
SPSS also supports what it calls “encrypted passwords.” These are
not encrypted. They are encoded with a simple, fixed scheme. An
encoded password is always a multiple of 2 characters long, and never
longer than 20 characters. The characters in an encoded password are
always in the graphic ASCII range 33 through 126. Each successive
pair of characters in the password encodes a single byte in the
plaintext password.
Use the following algorithm to decode a pair of characters:
- Let a be the ASCII code of the first character, and b be
the ASCII code of the second character.
- Let ah be the most significant 4 bits of a. Find the line
in the table below that has ah on the left side. The right side
of the line is a set of possible values for the most significant 4
bits of the decoded byte.
2 ⇒ 2367
3 ⇒ 0145
47 ⇒ 89cd
56 ⇒ abef
- Let bh be the most significant 4 bits of b. Find the line
in the second table below that has bh on the left side. The
right side of the line is a set of possible values for the most
significant 4 bits of the decoded byte. Together with the results of
the previous step, only a single possibility is left.
2 ⇒ 139b
3 ⇒ 028a
47 ⇒ 46ce
56 ⇒ 57df
- Let al be the least significant 4 bits of a. Find the
line in the table below that has al on the left side. The right
side of the line is a set of possible values for the least significant
4 bits of the decoded byte.
03cf ⇒ 0145
12de ⇒ 2367
478b ⇒ 89cd
569a ⇒ abef
- Let bl be the least significant 4 bits of b. Find the
line in the table below that has bl on the left side. The right
side of the line is a set of possible values for the least significant
4 bits of the decoded byte. Together with the results of the previous
step, only a single possibility is left.
03cf ⇒ 028a
12de ⇒ 139b
478b ⇒ 46ce
569a ⇒ 57df
Example ¶
Consider the encoded character pair ‘-|’. a is
0x2d and b is 0x7c, so ah is 2, bh is 7, al is
0xd, and bl is 0xc. ah means that the most significant
four bits of the decoded character is 2, 3, 6, or 7, and bh
means that they are 4, 6, 0xc, or 0xe. The single possibility in
common is 6, so the most significant four bits are 6. Similarly,
al means that the least significant four bits are 2, 3, 6, or 7,
and bl means they are 0, 2, 8, or 0xa, so the least significant
four bits are 2. The decoded character is therefore 0x62, the letter
‘b’.